千家信息网

Mysq中l建立测试父表、子表及测试用例的示例

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章给大家分享的是有关Mysq中l建立测试父表、子表及测试用例的示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。建立测试表查看版本信息select version()
千家信息网最后更新 2026年10月31日Mysq中l建立测试父表、子表及测试用例的示例

这篇文章给大家分享的是有关Mysq中l建立测试父表、子表及测试用例的示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

建立测试表

查看版本信息
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');

结果:执行失败
异常:[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)
原因:通不过on delete cascade 的外键约束检查

测试用例-先插入主表数据,再插入子表数据

insert into Models(ModelID,Name) values (1,'a');insert into Orders(Id,ModelID,Description) values (1,1,'a');

结果:执行成功

select * from Models;1    aselect * from Orders;1    1    a

测试用例-父子表都有数据,删除子表数据

delete from Orders where id = 1;

结果:执行成功

select * from Models;1    aselect * from Orders;为空

测试用例-父子表都有数据,删除父表书库

delete from Models where ModelID = 1;

结果:执行成功

select * from Models;为空select * from Orders;为空

测试用例-父子表都有数据,更新子表外键

update Orders set ModelID = 3 where ID =1;

结果:执行失败
异常:[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)
原因:通不过on delete cascade 的外键约束检查

测试用例-父子表都有数据,更新父表主键

update Models set ModelID = 2 where ModelID =1;

结果:执行失败
异常:[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)
原因:通不过on delete cascade 的外键约束检查

测试用例-父子表都有数据,更新子表非外键

update Orders set Description = 'b' where ID =1;

结果:执行成功

select * from Orders;1    1    b

测试用例-父子表都有数据,更新父表非主键

update Models set Name = 'c' where ModelID =1;

结果:执行成功

select * from Models;1    c

感谢各位的阅读!关于"Mysq中l建立测试父表、子表及测试用例的示例"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

测试 数据 结果 父子 成功 更新 原因 检查 示例 内容 更多 篇文章 空测 不错 实用 书库 信息 文章 版本 看吧 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 华服互联网科技靠谱吗 金融科技创新监管互联网金融 中资互联网科技 致骋互联网科技 奇士达互联网科技 互联网科技公司名称 哈尔滨秒房互联网科技有限公司 互联网对科技的发展 搜狐科技互联网 青海科技产业互联网发展 深圳市罗太互联网科技有限公司 卓翼科技产业互联网合作 山东子淼互联网科技有限公司 山东大美朱楼互联网科技有限公司 上海乐五互联网科技有限公司 互联网领先科技活动 绵阳真晨互联网科技有限公司 互联网大会出现的黑科技 每日互联网科技新闻 互联网科技快速发展优美句子 互联网巨头反垄断金融科技 互联网未来科技 互联网科技媒体 居家互联网科技有限公司 富国互联网科技创新基金 重庆互联网医院沙龙医盟信息科技 乌鲁木齐新华智原互联网科技学校 普陀区互联网教育科技管理办法 第三届互联网大会安防黑科技 每日互联网科技新闻
0