mysql能在数据库层面保证特殊唯一性吗?

学无止境-逆流而上 2017-08-11 04:01:04
mysql表有2个字段a,b,当a=1,b=1时,这条记录是唯一的。目前做法是程序保证唯一性,save or update时,必须先查询判重。
我们知道,唯一性最好是在数据库层面保证,但是这种特殊情况能通过触发器什么的来保证吗?
...全文
339 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Pact_Alice 2017-08-16
  • 打赏
  • 举报
回复
引用 5 楼 zjcxc 的回复:
mysql表有2个字段a,b,当a=1,b=1时,这条记录是唯一的 ------------------------------------------------ 什么叫 a=1,b=1时,这条记录是唯一的? 是其他值的时候不需要保证唯一?
他应该说的是组合唯一吧 ,就是A,B两个字段组合唯一性
zjcxc 2017-08-15
  • 打赏
  • 举报
回复
mysql表有2个字段a,b,当a=1,b=1时,这条记录是唯一的 ------------------------------------------------ 什么叫 a=1,b=1时,这条记录是唯一的? 是其他值的时候不需要保证唯一?
ckc 2017-08-15
  • 打赏
  • 举报
回复
触发器可以解决,不过应用还是会有些麻烦,因为需要处理更新失败的情况 你这种需求感觉真是挺怪异的,不知道是应用比较特殊还是设计的时候想歪了
LongRui888 2017-08-14
  • 打赏
  • 举报
回复
可以用触发器来实现。 也可以试试用unique index,但是unique有个问题,就是两列,但是这两列中的任意一列,都可以是空的,也能唯一,所以要限制着2列为not null
cloudmissing 2017-08-11
  • 打赏
  • 举报
回复
用唯一索引不就行了么
ACMAIN_CHM 2017-08-11
  • 打赏
  • 举报
回复
触发器中可以进行检查。

56,875

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧