unique约束

独特的约束的SQL
唯一约束的唯一识别每个记录在一个数据库表。

的独特性和原发性主要制约因素都提供了保证唯一的一列或一组栏。

主键约束自动具有独特的约束定义它。

请注意,你可以有许多独特的限制,每表,但只有一个主键约束每就座。


独特的SQL制约创建表
下列SQL创建了一个唯一约束的“ P_Id ”一栏时, “人”是创建表:

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (P_Id)
)

SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
P_Id int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
 
为了让命名一个独特的制约因素,并确定了唯一约束上多列,请使用下面的SQL语法:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
)


数据库独特的制约因素改变表要创建一个唯一约束的“ P_Id ”一栏时,表是已经建立,请使用下面的SQL :

ALTER TABLE Persons
ADD UNIQUE (P_Id)
 
为了让命名一个独特的制约因素,并确定了唯一约束上多列,请使用下面的SQL语法:

ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
 
drop unique 一个独特的制约因素放弃一个唯一约束,请使用下面的SQL :

ALTER TABLE Persons
DROP INDEX uc_PersonID
 
SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID

如果想设置外键约束,而又不设置主键,则可以用unique。

alter table 表名
add unique (字段名)

alter table 表名
add constraint 约束名
foreign key(字段名) references 主表名(字段名)
on update cascade

原文地址:https://www.cnblogs.com/zongzhankui/p/5875379.html