SQL之unique约束

  • Post author:
  • Post category:其他




参考源



SQL unique 约束

  1. SQL

    unique

    约束

    用于防止一个表中出现重复记录


  2. unique



    primary key

    约束均为列或列集合提供了唯一性的保证


  3. primary key

    约束会自动定义一个

    unique

    约束,或者说

    primary key

    是一种特殊的

    unique

    约束

    但二者是有明显区别的:

    每个表可以有多个

    unique

    约束,但只能有一个

    primary key

    约束



create table时的 SQL not null 约束

在创建表结构时,可以使用

unique

关键字给表添加

unique

约束



MySQL / SQL Server / Oracle / MS Access

CREATE TABLE lesson (
    id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name varchar(32) default '',
    views int(11) NOT NULL default 0,
    created_at DATETIME,
    UNIQUE(name)
);


如果想要多加多列,可以在括号内添加列,并使用逗号 (

,

) 分隔

CREATE TABLE lesson (
    id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name varchar(32) default '',
    views int(11) NOT NULL default '0',
    created_at DATETIME,
    UNIQUE(name,id)
);

如果还想给

unique

约束命名,可以使用

constraint

关键字

CREATE TABLE lesson (
    id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name varchar(32) default '',
    views int(11) NOT NULL default '0',
    created_at DATETIME,
    CONSTRAINT uniq_lession_name UNIQUE(name,id)
);



alter table 时的 SQL not null 约束

如果表已经被创建,而又想添加

unique

约束,可以使用

alter table add

命令



MySQL / SQL Server / Oracle / MS Access

ALTER TABLE lesson ADD UNIQUE (name);

当然了,

unique

可以包含多列,添加方法就和建表时添加多列是同样的

ALTER TABLE lesson ADD UNIQUE (id,name);

如果还想给

unique

约束命名,可以使用

constraint

关键字

ALTER TABLE lesson ADD CONSTRAINT uniq_lesson_name UNIQUE (id,name);



删除 unique 约束

如果想要删除

unique

约束,可以使用

alter table drop

命令



MySQL

ALTER TABLE lesson DROP {INDEX | key} uniq_lesson_name;



SQL Server / Oracle / MS Access

ALTER TABLE lesson DROP CONSTRAINT uniq_lesson_name;



版权声明:本文为qq_32617703原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。