我正在学习ORACLE并创建一个具有不同列和约束的表,现在我想给已经创建的约束赋予一个名称而不删除约束。我怎么能给他们起名字?我看到user_constraints
表中有几个约束,但我不知道它们的名称(null,unique)及其列。
我想再给我现有的约束命名(它有默认的oracle创建的名称,如(SYS_C0010392)。
这是我用来创建带约束的表的查询图像。(SQLPLUS不允许复制查询,这就是我添加图像的原因)
答案 0 :(得分:1)
ALTER TABLE dept RENAME CONSTRAINT SYS_C0010392 TO new_name;
SQL * Plus与其他任何控制台应用程序一样,因此您绝对可以复制所选文本。
列CDB / DBA / ALL / USER_CONSTRAINT.CONSTRAINT_TYPE描述约束类型,请参阅http://docs.oracle.com/cloud/latest/db121/REFRN/refrn20047.htm#REFRN20047。
可以在CREATE TABLE命令中指定约束名称:
create table my_table (
col1 number
constraint my_table_col1_nn not null
constraint my_table_col1_uq unique
);
CDB/DBA/ALL/USER_CONS_COLUMNS
:
SELECT * FROM ALL_CONS_COLUMNS WHERE CONSTRAINT_NAME = 'SYS_C0010392'