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的主键约束,换个名字就行。
有没有重复你添加约束使就会知道,有重复是不可以创建约束的,反之。
你可以在约束名把表名也加进去。
e.g.
PK_TB26_5_ID1_ID2
PK_TB26_6_ID1_ID2
Oracle数据库开发必备利器之SQL基础
160642 学习 · 641 问题
相似问题