Sql-unique
提供:Dev Guides
SQL-一意の制約
UNIQUE制約は、2つのレコードが列に同じ値を持つことを防ぎます。 たとえば、CUSTOMERSテーブルでは、2人以上の人が同じ年齢になるのを防ぐことができます。
例
たとえば、次のSQLクエリはCUSTOMERSという新しいテーブルを作成し、5つの列を追加します。 ここでは、AGE列がUNIQUEに設定されているため、同じ年齢の2つのレコードを持つことはできません。
CREATE TABLE CUSTOMERS(
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL UNIQUE,
ADDRESS CHAR (25) ,
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID)
);
CUSTOMERS表がすでに作成されている場合、UNIQUE制約をAGE列に追加します。 以下のコードブロックで提供されるクエリのようなステートメントを記述します。
ALTER TABLE CUSTOMERS
MODIFY AGE INT NOT NULL UNIQUE;
また、次の構文を使用することもできます。この構文では、複数の列の制約の名前付けもサポートされています。
ALTER TABLE CUSTOMERS
ADD CONSTRAINT myUniqueConstraint UNIQUE(AGE, SALARY);
一意の制約を削除する
UNIQUE制約を削除するには、次のSQLクエリを使用します。
ALTER TABLE CUSTOMERS
DROP CONSTRAINT myUniqueConstraint;
MySQLを使用している場合は、次の構文を使用できます-
ALTER TABLE CUSTOMERS
DROP INDEX myUniqueConstraint;