[英]drop primary key constraint in postgresql by knowing schema and table name only
[英]PostgreSQL same name for constraint and primary key
從Oracle遷移,我想重用一些定義,例如:
ALTER TABLE CLIENTUSERS
ADD CONSTRAINT UK_CLIENTUSERS_CLIENTUS UNIQUE (CLIENTID, USERID)
USING INDEX TABLESPACE IDX
但是,此操作失敗,因為using index
子句缺少索引名稱。 問題是,當我指定UK_CLIENTUSERS_CLIENTUS
它失敗,並顯示[42P07] ERROR: relation "uk_clientusers_clientus" already exists
我是否需要為約束生成另一個名稱,還是可以像oracle一樣重用索引的名稱?
如果要使用USING INDEX
語法,則應在ALTER TABLE
語句中省略列列表:
CREATE TABLE CLIENTUSERS(CLIENTID INT, USERID INT);
CREATE UNIQUE INDEX UK_CLIENTUSERS_CLIENTUS ON CLIENTUSERS(CLIENTID, USERID);
ALTER TABLE CLIENTUSERS
ADD CONSTRAINT UK_CLIENTUSERS_CLIENTUS UNIQUE -- here columns were removed
USING INDEX UK_CLIENTUSERS_CLIENTUS;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.