|
| [MySQL] Foreign Key problem Fra : Lars Hoffmann |
Dato : 17-01-05 09:32 |
|
Jeg prøver at oprette en relation imellem to tabeller ('menu' og
'menu_cabeceras') med følgende SQL:
ALTER TABLE `generador`.`menu_cabeceras`
ADD CONSTRAINT `FK_menu`
foreign key (ID_menu)
references menus(id)
ON DELETE RESTRICT
ON UPDATE RESTRICT;
Men får fejlen:
"Can't create table '.\generador\#sql-808_19.frm' (errno: 121)"
Jeg har uden held googlet efter en løsning, men jeg kan ikke se hvad
ptroblemet skulle være. Nogen der kan komme med en hjælpene hånd?
Med venlig hilsen
Lars Hoffmann
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
| |
Troels Arvin (17-01-2005)
| Kommentar Fra : Troels Arvin |
Dato : 17-01-05 09:49 |
|
On Mon, 17 Jan 2005 08:32:01 +0000, Lars Hoffmann wrote:
> "Can't create table '.\generador\#sql-808_19.frm' (errno: 121)"
Hvilken tabeltype har de involverede tabeller?
Hvilken version af MySQL er det?
--
Greetings from Troels Arvin, Copenhagen, Denmark
| |
Lars Hoffmann (17-01-2005)
| Kommentar Fra : Lars Hoffmann |
Dato : 17-01-05 10:02 |
|
"Troels Arvin" <troels@arvin.dk> wrote in message
news:pan.2005.01.17.08.48.47.719363@arvin.dk
> On Mon, 17 Jan 2005 08:32:01 +0000, Lars Hoffmann wrote:
>
> > "Can't create table '.\generador\#sql-808_19.frm' (errno: 121)"
>
> Hvilken tabeltype har de involverede tabeller?
Jeg er ikke helt sikker på hvad du mener med dette spørgsmål (er lidt
grøn udi MySQL), men hvis ikke jeg tager fejl er mine tabeller af INNODB
typen (hvordan kan jeg kontrolere dette?)
> Hvilken version af MySQL er det?
4.1 på en Win2K maskine
Med venlig hilsen
Lars Hoffmann
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
| |
Troels Arvin (17-01-2005)
| Kommentar Fra : Troels Arvin |
Dato : 17-01-05 10:21 |
|
On Mon, 17 Jan 2005 09:01:44 +0000, Lars Hoffmann wrote:
>> Hvilken tabeltype har de involverede tabeller?
[...]
> hvis ikke jeg tager fejl er mine tabeller af INNODB typen
Det er nemlig det interessante.
> (hvordan kan jeg kontrolere dette?)
Nu er google jo opfundet. Men jeg kan afsløre, at SHOW TABLE STATUS giver
dig en tabelliste med forskellige tabelparametre, herunder "Engine"-type.
Og her er det så, at de involverede tabeller skal være af InnoDB.
--
Greetings from Troels Arvin, Copenhagen, Denmark
| |
Lars Hoffmann (17-01-2005)
| Kommentar Fra : Lars Hoffmann |
Dato : 17-01-05 10:28 |
|
"Troels Arvin" <troels@arvin.dk> wrote
> Nu er google jo opfundet. Men jeg kan afsløre, at SHOW TABLE STATUS giver
> dig en tabelliste med forskellige tabelparametre,
Ok, det er alle innoDB,
Jeg har imidlertid fundet ud af at problemet var navnet på min foreign
key. Hvis jeg istedet for FK_menu kaldte den noget andet virker det
fint. Hvorkan jeg se om jeg ghar FK_menu eksisterende?
Med venlig hilsen
Lars Hoffmann
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
| |
Lars Hoffmann (17-01-2005)
| Kommentar Fra : Lars Hoffmann |
Dato : 17-01-05 10:31 |
|
"Lars Hoffmann" <larshoffmann@teleline.es> wrote in message
news:2f40639754e69e70ba8eb968204c3164.19342@mygate.mailgate.org
> Hvor kan jeg se om jeg ghar FK_menu eksisterende?
Jeg fandt den som foreign key navn på en helt anden tabel, hvilket jo
forklarer en hel del
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
| |
Troels Arvin (17-01-2005)
| Kommentar Fra : Troels Arvin |
Dato : 17-01-05 10:28 |
|
On Mon, 17 Jan 2005 09:01:44 +0000, Lars Hoffmann wrote:
> mine tabeller af INNODB typen
Hvis der er tale om InnoDB-tabeller, så kontrollér i øvrigt lige, at
der er et unikt index på de(n) kolonne(r), som din fremmednøgle
refererer til, og at datatyperne er de samme.
MySQL giver ret ubrugelige fejlmeddelelser, når fremmednøgler ikke kan
skabes på grund af problemer som de ovenfor nævnte.
--
Greetings from Troels Arvin, Copenhagen, Denmark
| |
|
|