测试人员告诉我的第一个bug

昨天周一,将项目移交测试人员,下午时候测试人员告诉我了一个bug,


新建组☞输入组名☞点击确定

此时出现了卡顿现象,该弹窗没有消失,测试人员连续点了多次确定,造成的结果是当卡顿消失后,出现了好多同名的组。

但只有这一次卡顿,也无法再次测验,于是想到了一个模拟卡顿的方法:给数据库表加锁。

MySQL数据库,工具是navicat:

加锁语句:lock tables 表名  write;    这句话可以阻止向表里添加数据。

此时在页面连续点击确定后弹窗不会消失,可以连续点击。

然后解锁:unlock tables;

解锁完毕后,该表里会突然多出好几条相同名字的记录,此时,模拟成功。

问题出现原因:表上锁后,添加操作的第一条数据已经进入添加阶段,但是没法添加成功,后台代码还未运行到给页面做返回的结尾。此时第二条、第三条。数据依次进来,其状态和第一条类似,表解锁后,多条记录在很短的时间里完成添加操作,导致出现同名现象。

解决办法:给页面要显示的主要内容加上唯一约束。

唯一约束,该列可以有空数据,但是不能有重复的数据。

添加唯一约束方式:

1.创建表时:

       CREATE TABLE t_user (
      Id int(11) NOT NULL AUTO_INCREMENT,  -- 自增
      username varchar(18) NOT NULL unique,  -- 唯一性约束

      password varchar(18) NOT NULL,
       PRIMARY KEY (`Id`)
      ) ENGINE=InnoDB AUTO_INCREMENT=1018 DEFAULT CHARSET=gbk;

2.已经建好的表
  alter table `t_user` add unique(`username`);






  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值