是否可以在MySQL中为VARCHAR列设置约束?
我不允许特定值超过一行。

   ______________
  |    MyTable   |
   --------------
  | pk id   INT  |
  | name VARCHAR |

如果我现在插入两行同名的“peter”,我想抛出一个错误。因此,约束应该只检查是否已经存储了“peter”。但其他值的多行必须工作。
INSERT INTO MyTable VALUES (1, "peter");
INSERT INTO MyTable VALUES (2, "peter"); // This should fail
INSERT INTO MyTable VALUES (3, "steven");
INSERT INTO MyTable VALUES (4, "steven"); // Shall succeed

在MySQL中是否可以通过某种方式检查指定的值?

最佳答案

不,这不可能使用约束。您可以在name上添加unique constraint,但这将预先结束所有重复的条目,而不仅仅是“peter”。话虽如此,你得自己再做一次检查。

关于mysql - 是否可以在MySQL中为VARCHAR列设置约束?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10008255/

10-11 05:05
查看更多