2012-02-07 16:22:36 +01:00
|
|
|
--source include/have_innodb.inc
|
2010-10-06 03:41:26 -07:00
|
|
|
# Test Bug #57255. Cascade deletes that affect different rows should not
|
|
|
|
# result in DB_FOREIGN_EXCEED_MAX_CASCADE error
|
|
|
|
|
|
|
|
|
|
|
|
create table A(id int not null primary key) engine=innodb;
|
|
|
|
|
|
|
|
create table B(id int not null auto_increment primary key, f1 int not null, foreign key(f1) references A(id) on delete cascade) engine=innodb;
|
|
|
|
|
|
|
|
create table C(id int not null auto_increment primary key, f1 int not null, foreign key(f1) references B(id) on delete cascade) engine=innodb;
|
|
|
|
|
|
|
|
insert into A values(1), (2);
|
|
|
|
|
|
|
|
--disable_query_log
|
2010-12-14 11:38:19 +02:00
|
|
|
begin;
|
2010-10-06 03:41:26 -07:00
|
|
|
let $i=257;
|
|
|
|
while ($i)
|
|
|
|
{
|
|
|
|
insert into B(f1) values(1);
|
|
|
|
dec $i;
|
|
|
|
}
|
|
|
|
let $i=486;
|
|
|
|
while ($i)
|
|
|
|
{
|
|
|
|
insert into C(f1) values(2);
|
|
|
|
dec $i;
|
|
|
|
}
|
2010-12-14 11:38:19 +02:00
|
|
|
commit;
|
2010-10-06 03:41:26 -07:00
|
|
|
--enable_query_log
|
|
|
|
|
|
|
|
# Following Deletes should not report error
|
|
|
|
DELETE FROM A where id = 1;
|
|
|
|
DELETE FROM C where f1 = 2;
|
|
|
|
DELETE FROM A where id = 1;
|
|
|
|
|
|
|
|
DROP TABLE C;
|
|
|
|
DROP TABLE B;
|
|
|
|
DROP TABLE A;
|