sql 如何约束多列中所有值均不同?
如有一表结构:
CREATE TABLE t1(
c1 INT,
c2 INT,
c3 INT
);
我如何写约束使得对任何两行,第一行的 c1
, c2
, c3
中任何一个与第二行的 c1
, c2
, c3
的任何一个均不同,且每一行的 c1
, c2
, c3
彼此不同?
Update:
查了 stackexchange 人家表示 unique 约束写不了,不过可以写 check 解决~
看看童鞋们有没有好办法。。。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
只能写check加约束了
感觉这种约束可能实现不了。
换种思路的话,需要在对表进行INSERT、UPDATE、DELETE的时候获取相关行,判断一下。
换种思维: 把要存的多列值放到一个列, 给这个列加唯一约束, 加个额外的属性标识属于不同的用途