Autor | Zpráva | ||
---|---|---|---|
kucape Profil |
#1 · Zasláno: 23. 4. 2014, 18:50:16
Zdravím,
mám dvě tabulky. V druhé je cizí klíč z první. Potřebuju odstranit záznamy v první tabulce a zároveň docílit toho, aby se odstranili související záznamy v druhé tabulce. Zkoušel jsem příkaz: "ALTER TABLE tbl_name DROP FOREIGN KEY fk_symbol ", ale mysql mi vyhodí chybovou hlášku: #1025 - Error on rename of '.\knihovnicka\vypujcka' to '.\knihovnicka\#sql2-f8c-4a6' (errno: 152) Mohli byste mi poradit jak to udělat, případně v čem je chyba ? Děkuji |
||
juriad Profil |
#2 · Zasláno: 23. 4. 2014, 18:55:21
Pokud potřebuješ odstranit záznamy, tak nic proč se pokoušíš rušit cizí klíč?
Když už jsi prozradil, že se jedná o knihovničku, tak můžeš ukázat i současnou strukturu databáze (jak obě tabulky vypadají). A úlohu, kterou se snažíš vykonat (při odstranění knihy odstranit i všechny historické výpůjčky??) |
||
kucape Profil |
#3 · Zasláno: 23. 4. 2014, 19:03:35
Jedna tabulka se jmenuje ctenar, v ni je sloupec cislo_prukazu. Druhá je vypujcky, kde je cizí klíč cislo_prukazu. Já potřebuji odstranit některé záznamy (čtenáře) a potřebuju aby se odstranili i související záznamy v tabulce "vypujcky".
Čili potřebuju udělat: DELETE FROM ctenar WHERE podmínka... ale to pochopitelně nejde protože existujou záznamy spojené s tou tabulkou ctenar. Vyskočí chyba: #1451 - Cannot delete or update a parent row: a foreign key constraint fails (`knihovnicka`.`vypujcka`, CONSTRAINT `fk_ctenar` FOREIGN KEY (`cislo_prukazu`) REFERENCES `ctenar` (`cislo_prukazu`) ON DELETE NO ACTION ON UPDATE NO ACTION) Já potřebuju, jak jsem už psal, odstranit záznamy z tabulky ctenar a zaroven s tím, odstranit související záznamy z vypujcky. |
||
juriad Profil |
Buď napřed ostraň výpůjčky:
DELETE FROM vypujcky JOIN ctenar ON ctenar.cislo_prukazu = vypujcky.cislo_prukazu WHERE podmínka na čtenáře Nebo změň FOREIGN KEY tak aby měl ON DELETE CASCADE. To způsobí, že dotaz projde a všechny závislé řádky se také rovnou smažou. |
||
kucape Profil |
Mohl byste mi ještě poradit jak nastavit to ON DELETE CASCADE ?
Pracuju v phpmyadmin. |
||
juriad Profil |
#6 · Zasláno: 23. 4. 2014, 19:36:14
|
||
kucape Profil |
#7 · Zasláno: 23. 4. 2014, 23:28:21
Děkuju :)
|
||
Časová prodleva: 10 let
|
0