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;