select version(); 5.7.22
drop table if exists Models; CREATE TABLE Models ( ModelID SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, Name VARCHAR(40) NOT NULL, PRIMARY KEY (ModelID) );
drop table if exists Orders; CREATE TABLE Orders ( ID SMALLINT UNSIGNED NOT NULL PRIMARY KEY, ModelID SMALLINT UNSIGNED NOT NULL, Description VARCHAR(40), FOREIGN KEY (ModelID) REFERENCES Models (ModelID) ON DELETE cascade );
insert into Orders(Id,ModelID,Description) values (1,1,'a');
Result: Execution failed
Exception: [2018-07-31 11:08:01] 23000 Cannot add or update a child row: a foreign key constraint fails (bov
.Orders
, CONSTRAINT Orders_ibfk_1
FOREIGN KEY (ModelID
) REFERENCES Models
(ModelID
) ON DELETE CASCADE)
Reason: The foreign key constraint check of on delete cascade cannot be passed
insert into Models(ModelID,Name) values (1,'a'); insert into Orders(Id,ModelID,Description) values (1,1,'a');
Result: Execution successful
select * from Models; 1 a select * from Orders; 1 1 a
delete from Orders where id = 1;
Result: Execution successful
select * from Models; 1 a select * from Orders; 为空
delete from Models where ModelID = 1;
Result: Execution successful
select * from Models; 为空 select * from Orders; 为空
update Orders set ModelID = 3 where ID =1;
Result: Execution Failure
Exception: [2018-07-31 12:33:02] 23000 Cannot add or update a child row: a foreign key constraint fails (bov
.Orders
, CONSTRAINT Orders_ibfk_1
FOREIGN KEY (ModelID
) REFERENCES Models
(ModelID
) ON DELETE CASCADE)
Reason: failed on delete cascade Foreign key constraint check
update Models set ModelID = 2 where ModelID =1;
Result: Execution failed
Exception: [2018-07-31 12:34:24 ] 23000 Cannot delete or update a parent row: a foreign key constraint fails (bov
.Orders
, CONSTRAINT Orders_ibfk_1
FOREIGN KEY (ModelID
) REFERENCES Models
(ModelID
) ON DELETE CASCADE)
Cause: failed the foreign key constraint check on delete cascade
update Orders set Description = 'b' where ID =1;
Result: Successful execution
select * from Orders; 1 1 b
update Models set Name = 'c' where ModelID =1;
Result: Execution Success
select * from Models; 1 c
Related articles:
Mysql database index establishment and performance testing
mysql high-performance stress test (summary It’s been a long time)
Related videos:
Data Structure Adventure: Linear Table
The above is the detailed content of Summary of establishing test parent tables, child tables and test cases in Mysq. For more information, please follow other related articles on the PHP Chinese website!