UNIQUE約束可以防止兩個記錄在一個特定的列具有相同的值。 Customers表中,例如,你可能要防止兩個或兩個以上的人具有相同的年齡。
例子:
例如,下面的SQL語句創建一個新的表名爲CUSTOMERS,並增加了5列。這裏年齡列設置爲獨一無二的,所以不能有兩個記錄具有相同的年齡:
CREATE TABLE CUSTOMERS(
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
ADDRESS CHAR (25),
PRIMARY KEY (ID)
);
如果已經創建了CUSTOMERS表,然後添加一個UNIQUE約束年齡的列,那麼可能會寫一個類似下面的語句:
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;
hibernate唯一約束示例: