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.

Posted in ,  | Tags

Comments are disabled