MySql UNIQUE 唯一限制 (SQL UNIQUE Constraint)

UNIQUE 唯一限制 (SQL UNIQUE Constraint)

UNIQUE 用來保證欄位在資料表中的唯一性,約束資料表中的欄位不能有重複的資料。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE TABLE customer (
C_Id INT NOT NULL UNIQUE,
Name VARCHAR(50) NOT NULL,
Address VARCHAR(255),
Phone VARCHAR(20)
);
//or
CREATE TABLE `customers` (
C_Id INT NOT NULL,
Name VARCHAR(50) NOT NULL,
Address VARCHAR(255),
Phone VARCHAR(20),
UNIQUE (C_Id)
);

替唯一鍵命名與多欄位的唯一限制

C_Id 及 Name 這兩個欄位共同唯一,CONSTRAINT 後面接著的即是此唯一鍵的名稱。

1
2
3
4
5
6
7
CREATE TABLE `customers` (
C_Id INT NOT NULL,
Name VARCHAR(50) NOT NULL,
Address VARCHAR(255),
Phone VARCHAR(20),
CONSTRAINT u_Customer_Id UNIQUE (C_Id, Name)
);

更改資料表限制 ALTER TABLE

1
ALTER TABLE `customers` ADD UNIQUE (C_Id);
替唯一鍵命名與多欄位的唯一限制:
1
ALTER TABLE `customers` ADD CONSTRAINT u_Customer_Id UNIQUE (C_Id, Name);

移除資料表限制 ALTER TABLE…

刪除C_Id

1
ALTER TABLE `customers` DROP INDEX C_Id;

刪除u_Customer_Id;

1
2
3
ALTER TABLE `customers` DROP INDEX u_Customer_Id;
//CONSTRAINT
ALTER TABLE `customers` DROP CONSTRAINT u_Customer_Id;