📅  最后修改于: 2020-11-11 09:42:57             🧑  作者: Mango
唯一键是表的一个或多个字段/列的集合,它们唯一地标识数据库表中的记录。
您可以说它有点像主键,但是它只能接受一个空值,并且不能有重复的值。
唯一键和主键都为一列或一组列的唯一性提供保证。
在主键约束中有一个自动定义的唯一键约束。
一张表可能有许多唯一的键约束,但一张表可能只有一个PRIMARY KEY约束。
在CREATE TABLE上的SQL UNIQUE KEY约束:
如果要在创建“学生”表时在“ S_Id”列上创建UNIQUE约束,请使用以下SQL语法:
SQL Server / Oracle / MS Access:
(在单列上定义唯一的键约束):
CREATE TABLE students
(
S_Id int NOT NULL UNIQUE,
LastName varchar (255) NOT NULL,
FirstName varchar (255),
City varchar (255)
)
MySQL:
CREATE TABLE students
CREATE TABLE students
(
S_Id int NOT NULL,
LastName varchar (255) NOT NULL,
FirstName varchar (255),
City varchar (255),
UNIQUE (S_Id)
)
(在多个列上定义唯一的键约束):
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE students
(
S_Id int NOT NULL,
LastName varchar (255) NOT NULL,
FirstName varchar (255),
City varchar (255),
CONSTRAINT uc_studentId UNIQUE (S_Id, LastName)
)
在ALTER TABLE上的SQL UNIQUE KEY约束:
如果要在创建表后在“ S_Id”列上创建唯一约束,则应使用以下SQL语法:
(在单列上定义唯一的键约束):
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE students
ADD UNIQUE (S_Id)
(在多个列上定义唯一的键约束):
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE students
ADD CONSTRAINT uc_StudentId UNIQUE (S_Id, LastName)
DROP SYNTAX for FOREIGN KEY约束:
如果要删除UNIQUE约束,请使用以下SQL语法:
MySQL:
ALTER TABLE students
DROP INDEX uc_studentID
SQL Server / Oracle / MS Access:
ALTER TABLE students
DROP CONSTRAINT uc_studentID