我正在尝试将主键约束移动到oracle中的不同列.我试过这个:
ALTER TABLE MY_TABLE
DROP CONSTRAINT c_name;
ALTER TABLE MY_TABLE
ADD CONSTRAINT c_name PRIMARY KEY
(
"COLUMN_NAME"
) ENABLE;
Run Code Online (Sandbox Code Playgroud)
这在添加约束上失败,错误表明约束已经存在,即使我刚刚删除它.任何想法为什么会这样
Tho*_*Low 11
如果原始约束是主键约束,Oracle会创建一个索引来强制执行约束.此索引的名称与约束相同(在您的示例中为C_NAME).您需要将索引与约束分开删除.所以你需要做一个:
ALTER TABLE <table1> DROP CONSTRAINT C_NAME;
DROP INDEX C_NAME;
ALTER TABLE <table1> ADD CONSTRAINT C_NAME PRIMARY KEY
( COLUMN_2 ) ENABLE;
Run Code Online (Sandbox Code Playgroud)