是否可以在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中是否可以以某种方式检查指定的值?
答案 0 :(得分:2)
不,那不可能使用约束。您可以在name
上添加unique constraint,但这会预示所有重复的信息,而不仅仅是“彼得”。话虽如此,你必须自己做额外的检查。
答案 1 :(得分:0)
将列设置为UNIQUE。尝试插入重复值的MySQL查询将失败。
INSERT:
insert into <table> (<columns>,unique(<unique column>));
更新:
alter table <table> add unique(<unique column>));