polardbxengine/mysql-test/suite/ndb/t/ndb_fk_self_ref.test

196 lines
4.0 KiB
Plaintext

-- source include/have_ndb.inc
###
### insert PK vs PK
###
create table t1 (
a int not null,
b int not null,
c int not null,
d int not null,
e int not null,
f int not null,
primary key (a),
unique(c) using hash,
index(e)) engine = ndb;
alter table t1 add constraint fkname
foreign key (a) references t1(a) on delete restrict on update restrict;
insert into t1 values (1,1,1,1,1,1);
alter table t1 drop foreign key fkname;
delete from t1;
###
### insert PK vs UK
###
alter table t1 add constraint fkname
foreign key (c) references t1(a) on delete restrict on update restrict;
insert into t1 values (1,1,1,1,1,1);
--error 1452
insert into t1 values (2,2,3,3,2,2);
alter table t1 drop foreign key fkname;
delete from t1;
###
### insert PK vs OI
###
alter table t1 add constraint fkname
foreign key (e) references t1(a) on delete restrict on update restrict;
insert into t1 values (1,1,1,1,1,1);
--error 1452
insert into t1 values (2,2,2,2,3,3);
alter table t1 drop foreign key fkname;
delete from t1;
###
### insert UK vs PK
###
alter table t1 add constraint fkname
foreign key (a) references t1(c) on delete restrict on update restrict;
#
# Bug#27930382 Foreign key constraint violations, false positive
# (Manual tests 2018-06-13 indicates that innodb still has the same bug)
#
insert into t1 values (1,1,1,1,1,1);
--error 1452
insert into t1 values (2,2,3,3,2,2);
alter table t1 drop foreign key fkname;
delete from t1;
###
### insert UK vs UK
###
alter table t1 add constraint fkname
foreign key (c) references t1(c) on delete restrict on update restrict;
#
# Bug#27930382 Foreign key constraint violations, false positive
# (Manual tests 2018-06-13 indicates that innodb still has the same bug)
#
insert into t1 values (1,1,1,1,1,1);
alter table t1 drop foreign key fkname;
delete from t1;
###
### insert UK vs OI
###
alter table t1 add constraint fkname
foreign key (e) references t1(c) on delete restrict on update restrict;
#
# Bug#27930382 Foreign key constraint violations, false positive
# (Manual tests 2018-06-13 indicates that innodb still has the same bug)
#
insert into t1 values (1,1,1,1,1,1);
--error 1452
insert into t1 values (2,2,2,2,3,3);
alter table t1 drop foreign key fkname;
delete from t1;
drop table t1;
###
### insert PK vs PK
###
create table t1 (
a int not null,
b int not null,
c int not null,
d int not null,
e int not null,
f int not null,
primary key (a,b),
unique(c,d) using hash,
index(e,f)) engine = ndb;
alter table t1 add constraint fkname
foreign key (a,b) references t1(a,b) on delete no action on update no action;
insert into t1 values (1,1,1,1,1,1);
alter table t1 drop foreign key fkname;
delete from t1;
###
### insert PK vs UK
###
alter table t1 add constraint fkname
foreign key (c,d) references t1(a,b) on delete no action on update no action;
insert into t1 values (1,1,1,1,1,1);
--error 1452
insert into t1 values (2,2,3,3,2,2);
alter table t1 drop foreign key fkname;
delete from t1;
###
### insert PK vs OI
###
alter table t1 add constraint fkname
foreign key (e,f) references t1(a,b) on delete no action on update no action;
insert into t1 values (1,1,1,1,1,1);
--error 1452
insert into t1 values (2,2,2,2,3,3);
alter table t1 drop foreign key fkname;
delete from t1;
###
### insert UK vs PK
###
alter table t1 add constraint fkname
foreign key (a,b) references t1(c,d) on delete no action on update no action;
insert into t1 values (1,1,1,1,1,1);
--error 1452
insert into t1 values (2,2,3,3,2,2);
alter table t1 drop foreign key fkname;
delete from t1;
###
### insert UK vs UK
###
alter table t1 add constraint fkname
foreign key (c,d) references t1(c,d) on delete no action on update no action;
insert into t1 values (1,1,1,1,1,1);
alter table t1 drop foreign key fkname;
delete from t1;
###
### insert UK vs OI
###
alter table t1 add constraint fkname
foreign key (e,f) references t1(c,d) on delete no action on update no action;
insert into t1 values (1,1,1,1,1,1);
--error 1452
insert into t1 values (2,2,2,2,3,3);
alter table t1 drop foreign key fkname;
delete from t1;
drop table t1;