添加约束
MariaDB ADD CONSTRAINT 命令用于在创建表后创建约束。它主要与 ALTER 语句结合使用。
添加唯一约束
对Salary列强制实施唯一约束表名为Employee,语句如下:
ALTER TABLE Employee
ADD UNIQUE (Salary);
为UNIQUE约束提供名称,并在多个列上定义UNIQUE约束(例如年龄和薪水),语句如下:
ALTER TABLE Employee
ADD CONSTRAINT UC_Employee UNIQUE (Age, Salary);
添加主键约束
对EmpID列,语句如下:
ALTER TABLE Employee
ADD PRIMARY KEY (EmpID);
为PRIMARY KEY约束提供名称,并定义一个多列上的 PRIMARY KEY 约束(例如 EmpID 和 Name),语句如下:
ALTER TABLE Employee
ADD CONSTRAINT PK_Employee PRIMARY KEY (EmpID, Name);
添加外键约束
要对名为 Contact_Info 的表的 EmpID 列强制执行 FOREIGN KEY 约束,语句如下:
ALTER TABLE Contact_Info
ADD FOREIGN KEY (EmpID)
REFERENCES Employee(EmpID);
提供name 为 FOREIGN KEY 约束,并在多个列上定义 FOREIGN KEY 约束,语句如下:
ALTER TABLE Contact_Info
ADD CONSTRAINT FK_Contact_Info
FOREIGN KEY (EmpID)
REFERENCES Employee(EmpID);
下面给出的语句演示了如何在多个列上强制执行 FOREIGN KEY 约束(EmpID 和 PersonName)。请注意,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';
删除约束
MariaDB DROP CONSTRAINT 命令用于删除 UNIQUE、PRIMARY KEY、FOREIGN KEY 或 CHECK 约束。
删除 UNIQUE 约束
从名为的表中删除 UC_Employee UNIQUE 约束Employee,可以使用下面提到的语句:
ALTER TABLE Employee
DROP INDEX UC_Employee;
或者
ALTER TABLE Employee
DROP CONSTRAINT UC_Employee;
删除 PRIMARY KEY 约束
删除从名为 Employee 的表中PK_Employee PRIMARY KEY 约束,语句如下:
ALTER TABLE Employee
DROP PRIMARY KEY;
删除FOREIGN KEY 约束
删除来自名为 Contact_Info 的表 FK_Contact_Info FOREIGN KEY约束,语句如下:
ALTER TABLE Contact_Info
DROP FOREIGN KEY FK_Contact_Info;
或者
ALTER TABLE Contact_Info
DROP CONSTRAINT FK_Contact_Info;
删除CHECK 约束
要删除 从名为 Employee 的表中CHK_Employee CHECK 约束,语句如下:
ALTER TABLE Employee
DROP CONSTRAINT CHK_Employee;
删除DEFAULT 约束
从名为 Employee 的表中删除 DEFAULT 约束,声明如下:
ALTER TABLE Employee
ALTER City DROP DEFAULT;
或者
ALTER TABLE Employee
ALTER COLUMN City DROP DEFAULT;