Mysql, serial en foreign keys
Posted by Paul Verreth Fri, 19 Jan 2007 14:18:00 GMT
Bij het gebruik van foreign keys is het van belang dat beide velden hetzelfde zijn.
In mysql is serial hetzelfde als bigint unsigned not null auto_increment unique. Het is dan ook belangrijk dat de foreign key een bigint unsigned is.
create table ouder (id serial, tekst text, primary key (id) );
create table kind (id int, tekst text, ouder_id bigint unsigned, foreign key (ouder_id) references ouder (id) );
Zoniet komt er volgende foutmelding:
ERROR 1005 (HY000): Can't create table 'kind.frm' (errno: 150)
Opgelet: werkt enkel met innodb
Dit is op te lossen met create table dada (... ...) engine=innodb;, maar beter is default-table-type=innodb te plaatsen in my.cnf.

