Autor Zpráva
Taiwan
Profil
Dobrý den, mám takový problém s foreign klíčema. Mám několik tabulek, které jsou vzájemně provázány a problém je v tom, že když v (table5) mám více řádků odkazující na jeden řádek v mateřské tabulce (table4). Tak se při smazání řádku v mateřské tabulce (table1) nesmažou všechny řádky na něj odkazující... Když je v dceřinné (table5) pouze jeden řádek, tak se smaže. Pokud je jich tam více, kteří odkazují na stejný řádek v (table4), tak se smaže vždy ten poslední, někdy i předchozí a vždy zůstane ten první. I přes to, že už nemá na co odkazovat. Ovšem pokud řádek v mateřské tabulce (table1) smažu přímo z phpmyadmin tak se smažou i všechny odkazující řádky. Divné co? Kde je problém? Používám InnoDB.
Zde přikládám náčrt dtb:

Děkuji za připadné odpovědi.
Kajman
Profil
Používáte transakce? Nemazání se děje i při mazáný přes mysql konzoli? Děje se to i na jiné (např. poslední stabilní) verzi mysql? Smaže se to korektně, pokud z table5 uděláte i cizí klíč přímo do table1?
Taiwan
Profil
Kajman:
Tak oprava, přes phpmyadmina se to také maže jak chce.... Translakce nepoužívám. Na jiném fóru jsem se dozvěděl, že mám nějak překřížené vazby mezi tabulkami.... Bohužel nevím přesně co to znamená a jak to opravit.
Kajman
Profil
Děje se to i na jiné (např. poslední stabilní) verzi mysql? Smaže se to korektně, pokud z table5 uděláte i cizí klíč přímo do table1?
Taiwan
Profil
Kajman:
Používám verzi 5.7.3

Když udělám klíč přímo na table1 tak se to maže tak jak má... Takže děkuji za pomoc, jen mě zaráží, proč to nefunguje tak jak jsem to měl....
Kajman
Profil
Taiwan:
jen mě zaráží, proč to nefunguje tak jak jsem to měl

Třeba jen jen chyba v mysql serveru. Můžete nachystat sql příkazy s vytvořením tabulek, inserty, deletem a select na data, která tam být nemají, a ten poslat s reportem chyby.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: