1

MySQL で VARCHAR 列に制約を設定することは可能ですか?

特定の値の複数の行を許可したくありません。

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

「ピーター」という同じ名前の行を 2 つ挿入すると、エラーがスローされます。したがって、制約は、「ピーター」が既に保存されているかどうかのみをチェックする必要があります。ただし、他の値の複数の行が機能する必要があります。

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 で何らかの方法で指定された値をチェックすることは可能ですか?

4

2 に答える 2

2

いいえ、制約を使用することはできません。に一意の制約を追加できますがname、これにより、「ピーター」だけでなく、すべての重複エントリが防止されます。そうは言っても、この追加のチェックは自分で行う必要があります。

于 2012-04-04T09:29:32.730 に答える
0

列を UNIQUE に設定します。重複する値を挿入しようとする MySQL クエリは失敗します。

入れる: insert into <table> (<columns>,unique(<unique column>));

アップデート: alter table <table> add unique(<unique column>));

于 2012-04-04T09:27:22.970 に答える