搜尋

首頁  >  問答  >  主體

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

如有一表结构:

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

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

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

伊谢尔伦伊谢尔伦2898 天前638

全部回覆(3)我來回復

  • PHP中文网

    PHP中文网2017-04-17 12:59:32

    只能寫check加約束了

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 12:59:32

    感覺這種約束可能實現不了。
    換個思路的話,需要在對錶進行INSERT、UPDATE、DELETE的時候取得相關行,判斷一下。

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-17 12:59:32

    換種思維: 把要存的多列值放到一個列, 給這個列加唯一約束, 加個額外的屬性標識屬於不同的用途

    回覆
    0
  • 取消回覆