在不丢弃的情况下为现有约束命名

时间:2015-12-10 05:52:13

标签: oracle

我正在学习ORACLE并创建一个具有不同列和约束的表,现在我想给已经创建的约束赋予一个名称而不删除约束。我怎么能给他们起名字?我看到user_constraints表中有几个约束,但我不知道它们的名称(null,unique)及其列。

我想再给我现有的约束命名(它有默认的oracle创建的名称,如(SYS_C0010392)。

这是我用来创建带约束的表的查询图像。(SQLPLUS不允许复制查询,这就是我添加图像的原因)

Rebus.XmlConfig

1 个答案:

答案 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'