Pomoc s cizími klíči v MySql
- kejlicz
- Člen | 201
Zdravím.
Snažím se proniknout do používání cizích klíčů v MySql, ale nějak mi hlava nebere jednu věc.
Mám tabulku book, kde mám sloupec author_id (int, NULL, default 1)
Potom tabulku author. Ta má sloupce (id a name).
Tabulka book má cizí klíč na z author_id na id v tabulce author.
Když u toho cizího klíče nastavím ON DELETE SET NULL a smažu autora, tak mi to v tabulce book->author_id nastaví NULL, což bych předpokládal.
Když ale nastavím u cizího klíče ON DELETE SET DEFAULT, tak mi to hodí chybu Zdrojové a cílové sloupce musí mít stejný datový typ, nad cílovými sloupci musí být definován index a odkazovaná data musí existovat. (errno 150). Vůbec nechápu proč, když mám default nastavený a ten záznam existuje.
Díky za nakopnutí.
Martin Kejzlar
- s4muel
- Člen | 92
InnoDB engine asi nepodporuje ON DELETE SET DEFAULT
zdroj:
http://stackoverflow.com/…7332/2088920
viac info:
http://dev.mysql.com/…traints.html