oracle資料庫修改主鍵時子表外來鍵處理

2021-06-20 15:40:54 字數 491 閱讀 1084

最近,專案需要把開發環境的資料與生產環境資料的主鍵保持一致,這就需要修改主鍵,但很多主鍵都是作為子表的外來鍵存在的,所以需要進行一些處理,以下是當時的實際操作步驟:

1、根據其他資訊把開發資料與生產資料的主鍵對應起來。

alter table tablename disable  constraint constraintname;

3、修改主鍵與相關表的外來鍵資料。

alter table tablename enable constraint constraintname;

查詢外來鍵:

select * from user_constraints t where t.constraint_type='r' and r_constraint_name =pkname;

有些外來鍵未建立外來鍵約束,但列名相同,可以通過以下語句檢視:

select * from user_tab_columns t where t.column_name='主鍵列名';

Oracle資料庫修改主鍵

一 資料表有主鍵但無主鍵約束名 先刪除之前的主鍵,後新增主鍵 a.alter table 表名 drop primary key b.alter table 表名 add primary key 想要更改的欄位名稱 二 資料表有主鍵也有主鍵約束名 1 刪除已有的主鍵約束名 a.若已知主鍵約束名 al...

如何修改資料庫主鍵

以前寫了乙個系統,某張表a定義了乙個主鍵比如欄位名為name,該字段又作為另外一張表b的外部關鍵字,以前系統中是不能修改表a的主鍵的,現在有一特殊的要求,在不變更以前資料庫表結構的情況下需要能夠修改表a的主鍵,請問有什麼變通的實現方法?在sql中可以設定為級聯更新,或自己寫乙個觸發器來同步修改。觸發...

Oracle資料庫主鍵自增

在學習mysql時,我們很容易通過auto increment就能實現主鍵自增的功能,但是在oracle資料庫中,是沒有這個關鍵字的,所以也不能通過這樣來實現主鍵自增。下面我就為大家介紹兩種實現主鍵自增的方法。兩種方法的基礎都有乙個概念就是序列 sequence 的概念,一種是利用序列和顯式呼叫的方...