MySQL 关键字

MySQL ADD CONSTRAINT 命令用于在创建表后创建约束。它主要与 ALTER 语句结合使用。

添加 UNIQUE 约束

对名为 EmployeeSalary 列强制实施 UNIQUE 约束,语句如下:

ALTER TABLE Employee
ADD UNIQUE (Salary); 

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

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

添加主键约束

对EmpID列强制执行主键约束表名为 Employee,语句如下:

ALTER TABLE Employee
ADD PRIMARY KEY (EmpID); 

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

ALTER TABLE Employee
ADD CONSTRAINT PK_Employee PRIMARY KEY (EmpID, Name); 

添加外键约束

强制执行外键约束表的EmpID列称为Contact_Info,语句如下:

ALTER TABLE Contact_Info
ADD FOREIGN KEY (EmpID) 
REFERENCES Employee(EmpID); 

为 FOREIGN KEY 约束提供名称,并为在多个列上定义 FOREIGN KEY 约束,语句如下:

ALTER TABLE Contact_Info
ADD CONSTRAINT FK_Contact_Info 
FOREIGN KEY (EmpID) 
REFERENCES Employee(EmpID); 

下面给出的语句演示了如何在多个列上强制执行 FOREIGN KEY 约束(EmpID 和Name)。请注意,Employee 表必须对这些列有 PRIMARY KEY 约束 - EmpID 和 Name。

ALTER TABLE Contact_Info
ADD CONSTRAINT FK_Contact_Info 
FOREIGN KEY (EmpID, PersonName) 
REFERENCES Employee(EmpID, Name); 

添加 CHECK 约束

要对Employee 表的Age 列实施CHECK 约束,语句如下:

ALTER TABLE Employee
ADD CHECK (Age >= 21); 

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

ALTER TABLE Employee
ADD CONSTRAINT CHK_Employee 
CHECK (Age >= 21 AND City = 'London'); 

添加 DEFAULT 约束

要对名为 Employee 的表的 City 列强制执行 DEFAULT 约束,语句如下:

ALTER TABLE Employee
ALTER City SET DEFAULT 'London';

-- 或者

ALTER TABLE Employee
ALTER COLUMN City SET DEFAULT 'London';