怎么知道主键约束的名字有没有重复,或者有什么好的主键约束命名方法?

来源:5-3 Oracle 主键约束

180416

2018-11-26 15:33

发现不同表的主键约束名称是不能相同的,那我们以后写主键名的时候怎么知道以前有没写过这个主键,或者有什么好的命名方法?

代码如下:

SQL> select * from dba_constraints where constraint_name='PK_ID1_ID2';

OWNER             CONSTRAINT_NAME                CONSTRAINT_TYPE          TABLE_NAME 

-------------------------------------------------------------------------------- ------------------------------ --------------- 

SYS               PK_ID1_ID2                                                      P                       TB26_5  

//这是 tb26_5表里的主键约束 :pk_id1_id2

SQL> alter table tb26_6 add constraint pk_id1_id2 primary key (id1,id2);

alter table tb26_6 add constraint pk_id1_id2 primary key (id1,id2)

ORA-02264: 名称已被一现有约束条件占用


SQL> alter table tb26_6 add constraint pk_test1_id1_id2 primary key (id1,id2);

Table altered

//tb26就不能直接增加名为pk_id1_id2的主键约束,换个名字就行。

写回答 关注

1回答

  • HuanXiang1973
    2018-11-28 01:33:45
    已采纳

    有没有重复你添加约束使就会知道,有重复是不可以创建约束的,反之。

    你可以在约束名把表名也加进去。
    e.g. 
    PK_TB26_5_ID1_ID2
    PK_TB26_6_ID1_ID2

Oracle数据库开发必备利器之SQL基础

为你带来Oracle开发必备的sql基础,为后续课程学习打下好的基础

160642 学习 · 641 问题

查看课程

相似问题