SQL UNIQUE 约束
2023-02-18 15:28:47 时间
SQL UNIQUE 约束
SQL UNIQUE 约束
UNIQUE 约束唯一标识数据库表中的每条记录。
UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
PRIMARY KEY 约束拥有自动定义的 UNIQUE 约束。
请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
CREATE TABLE 时的 SQL UNIQUE 约束
下面的 SQL 在 "Persons" 表创建时在 "P_Id" 列上创建 UNIQUE 约束:
MySQL:
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)
)
(
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)
)
(
P_Id int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
如需命名 UNIQUE 约束,并定义多个列的 UNIQUE 约束,请使用下面的 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 int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
)
ALTER TABLE 时的 SQL UNIQUE 约束
当表已被创建时,如需在 "P_Id" 列创建 UNIQUE 约束,请使用下面的 SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD UNIQUE (P_Id)
ADD UNIQUE (P_Id)
如需命名 UNIQUE 约束,并定义多个列的 UNIQUE 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
撤销 UNIQUE 约束
如需撤销 UNIQUE 约束,请使用下面的 SQL:
MySQL:
ALTER TABLE Persons
DROP INDEX uc_PersonID
DROP INDEX uc_PersonID
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID
DROP CONSTRAINT uc_PersonID
相关文章
- SQL Server 2012软件安装教程
- 【MySQL数据库】多表关系与多表联合查询
- 数据库主从分离加读写分离操作步骤
- 《程序员数学:斐波那契》—— 为什么不能用斐波那契散列,做数据库路由算法?
- 【PostgreSQL】基于CentOS系统安装PostgreSQL数据库
- 【OceanBase】基于CentOS系统安装OceanBase数据库
- mysql最常用的函数只需一篇文章
- 【docker-compose】一键安装PostgreSQL数据库
- 【MySQL】基于Win10系统安装配置MySQL8.0.28版本的数据库
- 【docker】使用容器安装部署OceanBase社区版数据库
- mysql-connect-confused
- 用SQL语句进行数据库查询(简单查询)
- SQL(及存储过程)跑得太慢怎么办?
- 猿创征文|体验新一代分布式数据库—OceanBase
- POSTGRESQL index-only-scan 到底开不开 与 我 羊 了
- MYSQL 8 和 POLARDB 在处理order by 时的缺陷问题
- 数据库你信仰什么-- 我信不给自己打标签(CloudJUMP )
- POSTGRESQL 一个 autovacuum 自控的想法与实现架构
- POSTGRESQL 提高POSTGRESQL性能的一些习惯 (2)
- MYSQL POLARDB 学习系列之 拆解 POLARDB 7 (终结) 失败恢复与可靠性