Oracle 未命名约束如何删除?
2017-07-03 本文已影响34人
旅行和阳光
创建表categoryinfo,未命名主键CategoryId 约束名称。
create table categoryinfo(
CategoryId varchar2(10),
CategoryName varchar2(30),
primary key(CategoryId)
)
创建表时无命名主键约束,如何删除?随便起个名字?删除直接报错,如下图
![](https://img.haomeiwen.com/i5305/a6793b75e5019ae2.png)
创建主键时未命名,但是oracle会自动分配一个约束名称,从哪里查询?
查询语句:
SELECT * FROM USER_CONS_COLUMNS WHERE TABLE_NAME='CATEGORYINFO'
CATEGORYINFO是你要查询的,未命名主键的表名称。表名称需要大写。
![](https://img.haomeiwen.com/i5305/25353b1a48b5c110.png)
查询后,可以看到约束名称为SYS_C0010813
然后删除约束名称
alter table categoryinfo drop constraint SYS_C0010813
再使用查询语句,查询结果为空
![](https://img.haomeiwen.com/i5305/c92f8e5f39cc8652.png)