sql 如何约束多列中所有值均不同?

如有一表结构:

CREATE TABLE t1(
    c1 INT,
    c2 INT,
    c3 INT
);

我如何写约束使得对任何两行,第一行的 c1, c2, c3 中任何一个与第二行的 c1, c2, c3 的任何一个均不同,且每一行的 c1, c2, c3 彼此不同?

Update:
查了 stackexchange 人家表示 unique 约束写不了,不过可以写 check 解决~
看看童鞋们有没有好办法。。。

阅读 4.6k
3 个回答

只能写check加约束了

感觉这种约束可能实现不了。
换种思路的话,需要在对表进行INSERT、UPDATE、DELETE的时候获取相关行,判断一下。

换种思维: 把要存的多列值放到一个列, 给这个列加唯一约束, 加个额外的属性标识属于不同的用途

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题