一、官档
11g:BOOK → Database SQL Language Reference → 12 SQL Statements: ALTER TABLE to ALTER TABLESPACE → ALTER TABLE
二、修改表属性
1、给表增加注释
-
COMMENT ON TABLE table_name
-
IS '';
2、修改表名
-
ALTER TABLE <表名>
-
ADD (<字段名> <字段类型>);
-
RENAME table_name_old TO table_name_new;
3、删除表
三、修改列属性
1、添加列
-
ALTER TABLE <表名>
-
ADD (<字段名> <字段类型>);
2、修改列名
-
ALTER TABLE <表名>
-
RENAME COLUMN <字段名_old> TO <字段名_new>;
3、删除列
-
ALTER TABLE <表名>
-
DROP COLUMN <列名>;
4、给列增加注释
-
COMMENT ON COLUMN <表名>.<列名> IS '';
5、设置列为不可用
-
ALTER TABLE <表名>
-
SET UNUSED(<列名>);
6、修改列类型
-
ALTER TABLE <表名>
-
MODIFY (<列名> <字段类型>);
四、修改约束
1、设置列不为空
-
ALTER TABLE <表名>
-
MODIFY <字段名> NOT NULL;
2、添加唯一值约束
-
ALTER TABLE <表名>
-
ADD CONSTRAINT UK_<字段名> UNIQUE(<字段名>);
3、添加主键约束
-
ALTER TABLE <表名>
-
MODIFY <字段名> Primary Key;
4、删除列主键约束
-
ALTER TABLE <表名>
-
DROP PRIMARY KEY;
5、添加检查约束
-
ALTER TABLE <表名>
-
ADD CONSTRAINT CK_<字段名> CHECK(<限定内容>);
6、添加外键约束
-
ALTER TABLE <表名>
-
ADD CONSTRAINT FK_<表名缩写>_<字段名> FOREIGN KEY(<列名7>) REFERENCES <从表名>(<从表主键>)
-
[on delete cascade/on delete set null];
如果你需要删除的数据被其他数据所参照,那么你应该决定到底希望oracle怎么处理那些参照这些即将要删除数据的数据的,你可以有三种方式:
a) 禁止删除。这也是oracle默认的
b) 将那些参照本值的数据的对应列赋空,这个需要使用on delete set null关键字
c) 将那些参照本值的数据一并删除,这个需要使用on delete cascade关键字
7、修改约束名
-
alter table <表名>
-
rename constraint <constraint_old_name> to <constraint_new_name>;
8、删除约束
-
ALTER TABLE <表名> DROP CONSTRAINT <约束名>;
9、禁用外键约束
-
ALTER TABLE <表名>
-
DISABLE CONSTRAINT <约束名>;
10、启用外键约束
-
ALTER TABLE <表名>
-
ENABLE CONSTRAINT <约束名>;
11、删除级联约束
-
ALTER TABLE <表名>
-
DROP (pk,fk,col1) CASCADE CONSTRAINTS;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24851054/viewspace-2146301/
,如需转载,请注明出处,否则将追究法律责任。