mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 21:12:26 +01:00
130 lines
4.3 KiB
Text
130 lines
4.3 KiB
Text
|
create table parent(
|
||
|
id int unique key
|
||
|
) engine innodb;
|
||
|
create table child(
|
||
|
parent_id int,
|
||
|
foreign key(parent_id) references parent(id)
|
||
|
on delete restrict
|
||
|
on update restrict
|
||
|
) engine innodb with system versioning;
|
||
|
insert into parent values(1);
|
||
|
insert into child values(1);
|
||
|
delete from parent where id = 1;
|
||
|
ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`child`, CONSTRAINT `child_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `parent` (`id`))
|
||
|
delete from child where parent_id = 1;
|
||
|
delete from parent where id = 1;
|
||
|
insert into parent values(1);
|
||
|
insert into child values(1);
|
||
|
update parent set id=id+1;
|
||
|
ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`child`, CONSTRAINT `child_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `parent` (`id`))
|
||
|
delete from child;
|
||
|
update parent set id=id+1;
|
||
|
select * from child for system_time from timestamp '1-1-1' to timestamp now(6);
|
||
|
parent_id
|
||
|
1
|
||
|
1
|
||
|
drop table child;
|
||
|
drop table parent;
|
||
|
create table parent(
|
||
|
id int(10) unsigned unique key
|
||
|
) engine innodb;
|
||
|
create table child(
|
||
|
parent_id int(10) unsigned primary key,
|
||
|
foreign key(parent_id) references parent(id)
|
||
|
) engine innodb with system versioning;
|
||
|
insert into parent values(1);
|
||
|
insert into child values(1);
|
||
|
delete from parent where id = 1;
|
||
|
ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`child`, CONSTRAINT `child_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `parent` (`id`))
|
||
|
drop table child;
|
||
|
drop table parent;
|
||
|
create table parent(
|
||
|
id int unique key
|
||
|
) engine innodb;
|
||
|
create table child(
|
||
|
parent_id int,
|
||
|
foreign key(parent_id) references parent(id)
|
||
|
on delete cascade
|
||
|
on update cascade
|
||
|
) engine innodb with system versioning;
|
||
|
insert into parent values(1);
|
||
|
insert into child values(1);
|
||
|
delete from parent where id = 1;
|
||
|
select * from child;
|
||
|
parent_id
|
||
|
select * from child for system_time from timestamp '1-1-1' to timestamp now(6);
|
||
|
parent_id
|
||
|
1
|
||
|
insert into parent values(1);
|
||
|
insert into child values(1);
|
||
|
update parent set id=id+1;
|
||
|
select * from child;
|
||
|
parent_id
|
||
|
2
|
||
|
select * from child for system_time from timestamp '1-1-1' to timestamp now(6);
|
||
|
parent_id
|
||
|
1
|
||
|
2
|
||
|
drop table child;
|
||
|
drop table parent;
|
||
|
create table parent(
|
||
|
id int unique key
|
||
|
) engine innodb;
|
||
|
create table child(
|
||
|
parent_id int,
|
||
|
foreign key(parent_id) references parent(id)
|
||
|
on delete set null
|
||
|
on update set null
|
||
|
) engine innodb with system versioning;
|
||
|
insert into parent values(1);
|
||
|
insert into child values(1);
|
||
|
delete from child;
|
||
|
insert into child values(1);
|
||
|
delete from parent where id = 1;
|
||
|
select * from child;
|
||
|
parent_id
|
||
|
NULL
|
||
|
select * from child for system_time from timestamp '1-1-1' to timestamp now(6);
|
||
|
parent_id
|
||
|
1
|
||
|
NULL
|
||
|
delete from child;
|
||
|
insert into parent values(1);
|
||
|
insert into child values(1);
|
||
|
update parent set id=id+1;
|
||
|
select * from child;
|
||
|
parent_id
|
||
|
NULL
|
||
|
select * from child for system_time from timestamp '1-1-1' to timestamp now(6);
|
||
|
parent_id
|
||
|
1
|
||
|
NULL
|
||
|
NULL
|
||
|
drop table child;
|
||
|
drop table parent;
|
||
|
create or replace table parent(
|
||
|
id int unique key
|
||
|
) engine innodb with system versioning;
|
||
|
create or replace table child(
|
||
|
parent_id int,
|
||
|
foreign key(parent_id) references parent(id)
|
||
|
) engine innodb;
|
||
|
insert into parent values(1);
|
||
|
insert into child values(1);
|
||
|
delete from parent;
|
||
|
ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`child`, CONSTRAINT `child_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `parent` (`id`))
|
||
|
update parent set id=2;
|
||
|
ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`child`, CONSTRAINT `child_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `parent` (`id`))
|
||
|
delete from child;
|
||
|
delete from parent;
|
||
|
insert into child values(1);
|
||
|
ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test`.`child`, CONSTRAINT `child_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `parent` (`id`))
|
||
|
insert into parent values(1);
|
||
|
insert into child values(1);
|
||
|
delete from parent;
|
||
|
ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`child`, CONSTRAINT `child_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `parent` (`id`))
|
||
|
update parent set id=2;
|
||
|
ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`child`, CONSTRAINT `child_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `parent` (`id`))
|
||
|
drop table child;
|
||
|
drop table parent;
|