本文对三种完整性约束,在创建表时以及创建表后如何给约束命名(列级、表级)做了介绍。
最后介绍了在约束命名的条件下,如何删除约束。

1.为约束起命名时,用到的关键字CONSTRAINT
2.需要注意的是,在同一数据库中约束的名字是不允许重复的,即使是在不同的表中。也就是说,除非你把约束名删除,否则不允许出现第二次。

 

为PRIMARY KEY 约束命名

创建表时:

列级:

CREATE TABLE table_name(
	column_name datatype 约束名 PRIMARY KEY,
	column_name datatype,
	......
);

表级:

CREATE TABLE table_name(
	column_name datatype,
	column_name datatype,
	......
	CONSTRAINT 约束名 PRIMARY KEY (column_name,column_name,...)
);

表创建好后:

ALTER TABLE table_name
ADD CONSTRAINT 约束名 PRIMARY KEY (column_name,column_name,...)

 

为FOREIGN KEY 约束命名

创建表时:

列级:

CREATE TABLE table_name(
	column_name datatype,
	column_name datatype CONSTRAINT 约束名 FOREIGN KEY (该列名) REFERENCES table_name(column_name),
	......
);
//其中"(该列名)"可以省略

表级:

CREATE TABLE table_name(
	column_name datatype,
	column_name datatype,
	......
	CONSTRAINT 约束名 FOREIGN KEY (column_name,column_name...)
REFERENCES table_name(column_name)
);

表创建好后:

ALTER TABLE table_name
ADD CONSTRAINT 约束名
FOREIGN KEY (column_name)
REFERENCES table_name(column_name)

 

为用户自定义约束命名

创建表时:

列级:

create table user7(
	column_name datatype constraint 约束名 NOT NULL,
	column_name datatype constraint 约束名 UNIQUE,
	column_name datatype constraint 约束名 CHECK(该列满足的条件)
);

表级:
1.NOT NULL
NOT NULL不能定义为表级,所以自然不能为这个约束表级命名。

2.UNIQUE

CREATE TABLE table_name(
	column_name datatype,
	column_name datatype,
	......
	CONSTRAINT 约束名 UNIQUE (column_name,column_name...)
);

3.CHECK

CREATE TABLE table_name(
	column_name datatype,
	column_name datatype,
	......
	CONSTRAINT 约束名 CHECK (column_name满足的条件 AND column_name满足的条件)
);

表创建好后:

1.UNIQUE

ALTER TABLE table_name
ADD CONSTRAINT 约束名 UNIQUE (column_name,column_name...)

2.CHECK

ALTER TABLE table_name
ADD CONSTRAINT 约束名 CHECK (column_name满足条件 AND column_name满足条件)

 

利用约束名删除约束

删除的基本语法都一样:

ALTER TABLE table_name
DROP CONSTRAINT 要删除的约束名
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐