WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Akut SQL problem (https://www.wn.se/forum/showthread.php?t=22229)

Althalos 2007-07-11 19:34

Citat:

#1452 - Cannot add or update a child row: a foreign key constraint fails (`sailguide/boat`, CONSTRAINT `boat_ibfk_1` FOREIGN KEY (`boat_type_id`) REFERENCES `boat_type` (`boat_type_id`))
Jag förstår ingenting av det, men jag behöver akut hjälp med att lösa det. Så fort som möjligt.. Alla förklaringar som leder någonstans är uppskattade..

Clarence 2007-07-11 20:02

Du har en foreign key i tabellen på kolumnen boat_type_id. Detta innebär i detta fallet att alla värden i boat_type_id i tabellen du försöker editera måste finnas i kolumnen boat_type_id i tabellen boat_type.

D vs finns inte båttypen du angett får du inte lägga till lägga till någon annan info som relaterar till den icke existerande båttypen.

Althalos 2007-07-11 20:11

Jag försökte faktiskt bara med en "INSERT INTO boat (name) VALUES ('$name')", men det kanske räknas som att jag försöker tilldela boat_type_id ett blankt värde?

Tack för informationen iallafall. Nu vet jag iallafall vad som är fel :)

Althalos 2007-07-11 20:51

Kan inte riktigt få det att fungera ändå. Jag vet att jag bara försöker skriva in värden som finns där, nummer mellan 1 och 7. Skriver över direkt ifrån en annan databas... jag har ändrat till int på kolumnerna där för att indikera att det är nummer jag för över, men det kanske inte spelar någon roll i SQL. Jag använder PHPmyadmin, finns det något sätt att se om jag har flera foreign keys? Finns det något jag måste göra med numrerna innan jag för in dem?

Jag har en gigantisk INSERT INTO med över 30 värden nu så det är svårt att veta vad som är felet... jag har kanske fem id-nummer som tolkas utifrån andra tabeller...

Conth 2007-07-11 23:39

Feltexten du fick pekar ju ut vilken constraint det är som misslyckas. Som Clarence påpekade så säger DB-motorn att du saknar nyckelvärdet i den andra tabellen. Har du dubbelkollat att tabellerna och kolumnerna har rätt namn!??

Althalos 2007-07-12 00:43

Yep. Tack för hjälpen. Nu fick jag till det. Nytt error-meddelande dock :(

Out of range value adjusted for column 'boat_id' at row 1

Vet inte vad det betyder heller (brukar egentligen inte syssla med sådant här), och MySQL manualen är helt kass, så om någon kan får ni gärna säga till.

Obs, detta är en helt annan tabell...

goose 2007-07-12 00:57

Hej,

Är inte någon MySQL-expert men det låter som du försöker sätta boat_id till något större värde än vad datatypen tillåter. Vad har du deklarerat boat_id som? Vad försöker du sätta för värde?

Althalos 2007-07-12 01:00

boat_id är auto_increment... sparas i INT(11), men värdet är bara 1998 eller nått...

Althalos 2007-07-12 02:20

Fixat nu. tack för hjälpen alla som hjälpte.


Alla tider är GMT +2. Klockan är nu 04:04.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson