Current Path : /home/usr.opt/mysql57/mysql-test/suite/ndb/r/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //home/usr.opt/mysql57/mysql-test/suite/ndb/r/ndb_fk_setnull.result |
create table parent ( a int primary key auto_increment, b int not null, c int not null, unique(b) using hash, index(c)) engine = ndb; create table child ( a int primary key auto_increment, b int, c int, unique(b) using hash, index(c)) engine = ndb; Warnings: Warning 1121 Ndb does not support unique index on NULL valued attributes, index access with NULL value will become full table scan alter table child add constraint fkname foreign key (b) references parent (a) on update restrict on delete set null; insert into parent values (1,1,1),(2,2,2); insert into child values (1,1,1),(2,2,2); insert into child values (3,3,3); ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (Unknown error code) update child set b = 3 where a = 1; ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (Unknown error code) begin; delete from parent where a = 1; select * from child order by 1,2,3; a b c 1 NULL 1 2 2 2 commit; delete from child; delete from parent; alter table child drop foreign key fkname; alter table child add constraint fkname foreign key (c) references parent (a) on update restrict on delete set null; insert into parent values (1,1,1),(2,2,2); insert into child values (1,1,1),(2,2,2),(3,3,1); update child set c = 3 where a = 1; ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (Unknown error code) insert into child values (4,4,4); ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (Unknown error code) begin; delete from parent where a = 1; select * from child order by 1,2,3; a b c 1 1 NULL 2 2 2 3 3 NULL commit; delete from child; delete from parent; alter table child drop foreign key fkname; alter table child add constraint fkname foreign key (b) references parent (b) on update set null on delete set null; insert into parent values (1,1,1),(2,2,2); insert into child values (1,1,1),(2,2,2); update child set b = 3 where a = 1; ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (Unknown error code) insert into child values (3,3,3); ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (Unknown error code) begin; update parent set b = 3 where a = 1; select * from child order by 1,2,3; a b c 1 NULL 1 2 2 2 rollback; begin; delete from parent where a = 1; select * from child order by 1,2,3; a b c 1 NULL 1 2 2 2 commit; delete from child; delete from parent; alter table child drop foreign key fkname; alter table child add constraint fkname foreign key (c) references parent (b) on update set null on delete set null; insert into parent values (1,1,1),(2,2,2); insert into child values (1,1,1),(2,2,2),(3,3,1); update child set c = 3 where a = 1; ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (Unknown error code) insert into child values (4,4,4); ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (Unknown error code) begin; update parent set b = 3 where a = 1; select * from child order by 1,2,3; a b c 1 1 NULL 2 2 2 3 3 NULL rollback; begin; delete from parent where a = 1; select * from child order by 1,2,3; a b c 1 1 NULL 2 2 2 3 3 NULL commit; delete from child; delete from parent; alter table child drop foreign key fkname; drop table parent, child;