Pomoc s cizími klíči v MySql

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
kejlicz
Člen | 201
+
0
-

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
+
0
-

InnoDB engine asi nepodporuje ON DELETE SET DEFAULT
zdroj:
http://stackoverflow.com/…7332/2088920
viac info:
http://dev.mysql.com/…traints.html

kejlicz
Člen | 201
+
0
-

Díky. Mrknu na to. Dělám to přes Adminera a ten tam tu volbu má, tak mě nenapadlo, že by to nemuselo umět.