通用用例:
mysql的trigger业务测试回归:
trigger就是触发器,是特殊的一种存储过程,在满足的一定情况下会触发,并执行里面的语句集合。
数据库查询:show triggers\G
如果有的话都是重点测试的。
5.7默认开启严格模式,5.5则没有默认开启,开启严格模式后使数据更加安全严格,但缺点是减少了对空数据入库的兼容性
主要有以下几种情况:
1.not null的字段没有传入默认值
比如
例子:
create table class( id int not null primary key auto_increment, name char(16) not NULL, score int(15) not NULL )
insert into class(score) values(22);
5.5下,会默认给你加个空格:

5.7下则直接报错:

2.传入默认值类型错误:
int类型传入了空值,还是以上面的例子为例:
insert into class(score) values('');
旧版5.5,空字符默认转化为0。
5.7则直接报错
3.数据长度截取:
还是以上面的例子为例,输入超长度的代码
insert into class(name) values('ceshiguanlipingtai');
5.5下则截断:

5.7下,则会报错

其他类似的:
严格模式:
不支持对自增长字段插入’ '值
不支持text字段有默认值
5.7MySQL数据get后跟5.5默认的顺序有可能不一样。
比如某业务下的数据
5.5
5.7结果:
图中可以看出默认的排序是不一致的。有些业务对排序可能会有些要求。

这篇博客探讨了MySQL 5.5与5.7版本在严格模式下的不同行为,特别是在数据校验和触发器测试方面。在严格模式下,5.7对数据的插入有更严格的限制,如不允许为空值的字段未提供默认值,类型错误及数据长度超出限制时会直接报错。此外,5.7的数据查询顺序可能与5.5不同,可能影响依赖默认排序的业务。文章还提醒注意触发器的测试,确保在特定条件下能正确执行。
581

被折叠的 条评论
为什么被折叠?



