MariaDB 关键字

MariaDB UNIQUE 关键字是一个约束,它用于确保表的列中的所有值都不同(唯一)。为了确保列中值的唯一性,可以使用 UNIQUE 或 PRIMARY KEY 约束。 PRIMARY KEY 约束自动具有 UNIQUE 约束。但是,一张表只能有一个 PRIMARY KEY 约束,但可以有多个 UNIQUE 约束。

MariaDB CREATE TABLE UNIQUE 约束

下面提到的语句创建一个名为 Employee的表 包含五列:EmpID、Name、City、Age 和 Salary。 其中 UNIQUE 约束应用于列 EmpID。

CREATE TABLE Employee (
  EmpID INT NOT NULL UNIQUE,
  Name VARCHAR(255) NOT NULL,
  City VARCHAR(100),
  Age INT,
  Salary DECIMAL(18,2)
); 

或者,也可以按如下方式创建:

CREATE TABLE Employee (
  EmpID INT NOT NULL,
  Name VARCHAR(255) NOT NULL,
  City VARCHAR(100),
  Age INT,
  Salary DECIMAL(18,2),
  UNIQUE(EmpID)
); 

要为 UNIQUE 约束提供名称,并在多个列上定义 UNIQUE 约束(例如 EmpID 和 Name),语句如下:

CREATE TABLE Employee (
  EmpID INT NOT NULL,
  Name VARCHAR(255) NOT NULL,
  City VARCHAR(100),
  Age INT,
  Salary DECIMAL(18,2),
  CONSTRAINT UC_Employee UNIQUE(EmpID, Name)
); 

MariaDB  ALTER TABLE UNIQUE 约束

在上面的示例中,创建了一个名为 Employee 的表。要对 Salary 列实施 UNIQUE 约束,语句如下:

ALTER TABLE Employee
ADD UNIQUE (Salary); 

为 UNIQUE 约束提供名称,并在多个列上定义 UNIQUE 约束(比如Age和Salary),语句如下:

ALTER TABLE Employee
ADD CONSTRAINT UC_Employee UNIQUE (Age, Salary); 

删除UNIQUE约束

删除 UC_Employee来自名为Employee的表的UNIQUE约束,语句如下:

ALTER TABLE Employee
DROP INDEX UC_Employee;

或者

ALTER TABLE Employee
DROP CONSTRAINT UC_Employee;