Diskuze: Problém s vytvorením relace

PHP PHP Problém s vytvorením relace American English version English version

Avatar
Dominik Gavrecký:

Ahojte,

už nejaku dobu sa snažím vytvoriť reláciu medzi dvomi tabuľkami a však neuspešne a už naozaj neviem ako ďalej.

Chybová hláška:

Error: FOREIGN KEY relation could not be added!
#1452 - Cannot add or update a child row: a foreign key constraint fails (`dev_rewiz`.`#sql-c16_4a1809`, CONSTRAINT `#sql-c16_4a1809_ibfk_1` FOREIGN KEY (`id`) REFERENCES `news` (`news_users_id`))

SQL

ALTER TABLE `news` ADD  CONSTRAINT `news_users_id` FOREIGN KEY (`news_users_id`) REFERENCES `users`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;

DB : https://ctrlv.cz/Oy5l

Potrebujem aby news_users_id ** odkazoval na tabuľku users stlpec **id odkiaľ budem následne ťahať dalšie údaje.

Dátove typy v tabuľke users budem ešte prerábať viem že je v nej veľa chýb.

Ďakujem

Editováno 27. května 23:23
Odpovědět 27. května 23:23
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na Dominik Gavrecký
Matúš Petrofčík:
ALTER TABLE news ADD FOREIGN KEY (news_users_id) REFERENCES users(id) ON UPDATE RESTRICT ON DELETE RESTRICT

Pripadne pridaj tie antiapostrofy.

Nahoru Odpovědět 28. května 0:21
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Odpovídá na Matúš Petrofčík
Dominik Gavrecký:
#1452 - Cannot add or update a child row: a foreign key constraint fails (`dev_rewiz`.`#sql-c16_4a3fd1`, CONSTRAINT `#sql-c16_4a3fd1_ibfk_1` FOREIGN KEY (`news_users_id`) REFERENCES `users` (`id`))
Nahoru Odpovědět 28. května 0:22
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
TomasGlawaty
Člen
Avatar
Odpovídá na Dominik Gavrecký
TomasGlawaty:

Máš v těch tabulkách nějaká data? Zda se mi, že to na tomto padá pokud přidáváš no-nullable cizí klíč do tabulky, která již obsahuje řádky.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 28. května 0:33
Člověk může dosáhnout čeho si zamane. Jen musí chtít, případně něco obětovat ...
Avatar
Odpovídá na TomasGlawaty
Dominik Gavrecký:

Mám dá sa to nejako obísť alebo to musím na kopletku zmazať ? Teda vyprázdniť aj news a users ?

Nahoru Odpovědět 28. května 0:35
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
Dominik Gavrecký:

Tak som to vyprázdnil a funguje to ale aj tak by ma zaujímalo či sa to dá nejako obísť ?

Nahoru Odpovědět 28. května 0:38
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
TomasGlawaty
Člen
Avatar
Odpovídá na Dominik Gavrecký
TomasGlawaty:

Nadefinuj ten sloupec jako nullable, pak by ti mel jít přidat. Pokud se budes chtít zbavit možnosti aby sloupec mohl byt null, budes muset pak všechny klíče updatovat na hodnoty a následně definici Null ze sloupce odstranit :)

Nahoru Odpovědět  +1 28. května 0:43
Člověk může dosáhnout čeho si zamane. Jen musí chtít, případně něco obětovat ...
Avatar
Nahoru Odpovědět 28. května 0:45
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.