千家信息网

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

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,这篇文章给大家分享的是有关Mysq中l建立测试父表、子表及测试用例的示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。建立测试表查看版本信息select version()
千家信息网最后更新 2024年11月22日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安全错误 数据库的锁怎样保障安全 软件开发转工程 宝利通手机需要登录服务器吗 国际网络安全 大赛 中肯网络技术有限公司 中国的互联网科技企业是买办吗 维护网络安全英雄人物 巨量引擎网络技术有限公司武汉 远程服务器密码忘记 计算机网络安全手抄报插画 修改win10更新服务器网址 通信工程能用软件开发吗 贵州首届网络安全大赛 漏洞管理在网络安全中的地位 郑州计算机软件开发哪家好 恶性肿瘤数据库管理制度 关于网络技术的书有哪些 怎样合理使用网络安全 加固阿里云服务器安全 我的世界管理者服务器手机版 维护网络安全的必要途径是 执法局网络安全隐患自查自评报告 同德金服网络技术 南通倍尔特网络技术有限公司 漯河锻让网络技术有限公司 可信计算芯片与网络安全 网络技术服务公司的成本 网络安全自我防范的演讲稿 杨浦区常规网络技术服务售后服务 软件开发可以找哪些工作 数据库一般多少钱
0