约束的总操作
查看约束的信息
DESC USER_CONSTRAINTS;
SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE TABLE_NAME='USERINFO_NEW';
注:查找时,字段值要大写!
SELECT CONSTRAINT_NAME,STATUS FROM USER_CONSTRAINTS WHERE TABLE_NAME='USERINFO_NEW';
注:查找时,字段值要大写!
禁用/启用 约束
ALTER TABLE table_name
DISABLE|ENABLE CONSTRAINT constraint_name;
删除约束
ALTER TABLE table_name
DROP CONSTRAINT constraint_name;
更改约束的名称
ALTER TABLE table_name
RENAME CONSTRAINT old_name
TO new_name;
各类约束的操作
非空约束(约束 无名称)
创建表时 设置非空约束(只能列级)
CREATE TABLE table_name(
column_name datatype NOT NULL,...);
在修改表时 添加非空约束
ALTER TABLE table_name
MODIFY column_name datatype NOT NULL;
删除非空约束
ALTER TABLE table_name
MODIFY column_name datatype NULL;
主键约束(非空,唯一)
在创建表时 设置主键约束
方法一(列级):
CREATE TABLE table_name(
column_name datatype PRIMARY KEY,...);
方法二(表级):
CREATE TABLE table_name
( column_name datatype,
...,
CONSTRAINT constraint_name PRIMARY KEY(column_name1,...) );
在修改表时 添加主键约束
ALTER TABLE table_name
ADD CONSTRAINT constraint_name
PRIMARY KEY(column_name1,...);
例:ALTER TABLE USERINFO_NEW
ADD CONSTRAINT PK_TEST
PRIMARY KEY(ID);
删除主键约束
ALTER TABLE table_name
DROP PRIMARY KEY;
外键约束
在创建表时 设置外键约束
方法一(列级):
CREATE TABLE table1_name(
column_name datatype REFERENCES table2_name(column_name),...);
//table2_name是主表,主表的字段必须是主键
方法二(表级):
CREATE TABLE table1_name(
column_name datatype,
...,
CONSTRAINT constraint_name FOREIGN KEY(column1_name)
REFERENCES table2_name(column2_name)[ON DELETE CASCADE]);
//table2_name是主表,主表的字段必须是主键
//ON DELETE CASCADE 级联删除
在修改表时 添加外键约束
ALTER TABLE table_name
ADD CONSTRAINT constraint_name
FOREIGN KEY(column_name)
REFERENCES table_name(column_name)[ON DELETE CASCADE];
删除外键约束
ALTER TABLE table_name
DROP CONSTRAINT constraint_name;
唯一约束
在创建表时 设置唯一约束
方法一(列级):
CREATE TABLE table1_name(
column_name datatype UNIQUE,...);
方法二(表级):
CREATE TABLE table1_name(
column_name datatype,
...,
CONSTRAINT constraint_name UNIQUE(column_name));
在修改表时 添加唯一约束
ALTER TABLE table_name
ADD CONSTRAINT constraint_name
UNIQUE(column_name);
删除唯一约束
ALTER TABLE table_name
DROP CONSTRAINT constraint_name;
检查约束
在创建表时 设置检查约束
方法一(列级):
CREATE TABLE table_name
( column_name datatype CHECK(expressions),...);
方法二(表级):
CREATE TABLE table1_name(
column_name datatype,
...,
CONSTRAINT constraint_name CHECK(expressions) );
在修改表时 添加检查约束
ALTER TABLE table_name
ADD CONSTRAINT constraint_name
CHECK(expressions);
删除检查约束
ALTER TABLE table_name
DROP CONSTRAINT constraint_name;