MariaDB 5.5.36忽略外键约束级联

时间:2014-05-15 01:40:50

标签: mysql constraints cascade mariadb

我遇到了MariaDB 5.5.36的问题,其中没有使用mysqldump强制或导出外键约束。我的进一步调查表明,这些键没有显示在" SHOW CREATE TABLE"甚至强制执行。我确信我的DDL有问题,但无法弄清楚。

我使用常规的mysql CLI测试了以下内容。

DDL:

create table parent(id bigint auto_increment not null, 
name varchar(32), 
primary key (id));

create table child(id bigint auto_increment not null, 
parent_id bigint, name varchar(32), 
primary key (id), 
foreign key fk_parent_id (parent_id) references parent(id) ON DELETE CASCADE);

DML:

insert into parent(name) values('P1');
insert into child(parent_id, name) values(1, 'C1');
DELETE from parent;
DROP table parent;

我预计DELETE或DROP语句会导致错误,但它并没有,并且子表仍然包含一行。而且,在这个测试中没有任何一点mysqldump或者#34; show create table child"显示外键" ON DELETE CASCADE"一部分。

对此有何想法?

1 个答案:

答案 0 :(得分:0)

Michael Berkowski指出问题出在MyISAM存储引擎上。将其更改为InnoDB可以解决问题。