网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
09月02日漏签0天
mysql吧 关注:58,505贴子:135,678
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 0回复贴,共1页
<<返回mysql吧
>0< 加载中...

请问为了避免重复,使用触发器推荐吗?

  • 只看楼主
  • 收藏

  • 回复
  • 选票投给川普
  • 初涉江湖
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
最近遇到了一个问题,是这样的,数据库里面有一列,这一列是一个外键,int类型,但是默认可以为空,基于业务。
如果这个键值是空,则可以允许重复,比如一条记录中,这一个键是nil,则可以由很多这种记录。但是,如果这个键值不为空,比如这个键值是10,那整个数据表里面只能有一条记录拥有10这个值。
之前踩过一次坑,因为数据来的很快,而且是多线程,出现了重复写的情况,因为原来的逻辑是,我0-1秒查,1-3秒生成实例,3-4秒写入,但是1-3秒之间可能又来一个一样的,因为之前的还没写入,浴室新来的也认为应该生成实例,就出现了重复写。
之前我是加了个锁,加了个我写入之前,不许任何人碰这个表,直到我弄好了为止,但是这样效率太低就放弃了。
后来有人让我把锁拆了,想别的办法。
我现在在想,是否可以用trigger,我的想法是,插入之前,会触发trigger,trigger会先判断插入的数据这个值是否为空,为空,则直接 放行,不为空,在数据库里面查询,如果查到发现已经存在了,返回自定义错误。但是我看了很多文献,发现触发器好像不推荐使用。请问还有啥别的推荐吗?还是这种情况可以用触发器。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 0回复贴,共1页
<<返回mysql吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示