truncate有外來鍵約束的表,報ORA-02266處理。
問題描述:當父表有子表的外來鍵約束時,無法直接truncate父表。報ORA-02266: unique/primary keys in table referenced by enabled foreign keys。
這裡使用另一種辦法來解決這個問題:先把外來鍵失效,truncate表之後再把外來鍵生效。
SQL> truncate table machine_room;
truncate table machine_room
*
ERROR at line 1:
ORA-02266: unique/primary keys in table referenced by enabled foreign keys
1.查詢外來鍵約束
SQL> select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE,R_CONSTRAINT_NAME from ALL_CONSTRAINTS WHERE constraint_type='R' and owner='UML';
TABLE_NAME CONSTRAINT_NAME R_CONSTRAINT_NAME
------------------------------ ------------------------------ ------------------------------
TEAM FK_T_SCHOOL01 PK_T_SCHOOL
TEAM_MESSAGE FK_T_TEAM04 PK_T_TEAM
TEAM_MESSAGE FK_T_SCHOOL0 PK_T_SCHOOL
RACE_SEAT FK_T_MACHINE_ROOM02 PK_T_MACHINE
RACE_SEAT FK_T_TEAM02 PK_T_TEAM
RACE_MARK FK_T_TEAM03 PK_T_TEAM
6 rows selected.
2. 失效子表的外來鍵約束 (所有外來鍵)
SQL> ALTER TABLE race_seat DISABLE CONSTRAINT fk_t_machine_room02 ;
Table altered.
3. 再次執行truncate父表資料的操作
SQL> truncate table machine_room;
Table truncated.
4. 生效外來鍵約束 (剛才所有失效外來鍵)
SQL> ALTER TABLE race_seat enable CONSTRAINT fk_t_machine_room02;
Table altered.
ok,轉載請標明出處。
這裡使用另一種辦法來解決這個問題:先把外來鍵失效,truncate表之後再把外來鍵生效。
SQL> truncate table machine_room;
truncate table machine_room
*
ERROR at line 1:
ORA-02266: unique/primary keys in table referenced by enabled foreign keys
1.查詢外來鍵約束
SQL> select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE,R_CONSTRAINT_NAME from ALL_CONSTRAINTS WHERE constraint_type='R' and owner='UML';
TABLE_NAME CONSTRAINT_NAME R_CONSTRAINT_NAME
------------------------------ ------------------------------ ------------------------------
TEAM FK_T_SCHOOL01 PK_T_SCHOOL
TEAM_MESSAGE FK_T_TEAM04 PK_T_TEAM
TEAM_MESSAGE FK_T_SCHOOL0 PK_T_SCHOOL
RACE_SEAT FK_T_MACHINE_ROOM02 PK_T_MACHINE
RACE_SEAT FK_T_TEAM02 PK_T_TEAM
RACE_MARK FK_T_TEAM03 PK_T_TEAM
6 rows selected.
2. 失效子表的外來鍵約束 (所有外來鍵)
SQL> ALTER TABLE race_seat DISABLE CONSTRAINT fk_t_machine_room02 ;
Table altered.
3. 再次執行truncate父表資料的操作
SQL> truncate table machine_room;
Table truncated.
4. 生效外來鍵約束 (剛才所有失效外來鍵)
SQL> ALTER TABLE race_seat enable CONSTRAINT fk_t_machine_room02;
Table altered.
ok,轉載請標明出處。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2131336/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle外來鍵約束中NULL的處理OracleNull
- 遷移後處理外來鍵約束的問題
- Javaweb-約束-外來鍵約束JavaWeb
- Oracle定義約束 外來鍵約束Oracle
- 【TRUNCATE】在有外來鍵參照的表上無法使用TRUNCATE完成資料清理(ORA-02266)
- mysql 刪除老是報外來鍵約束MySql
- SQL的主鍵和外來鍵約束SQL
- oracle外來鍵約束的總結Oracle
- 教你mysql如何增加外來鍵約束MySql
- MySQL禁用恢復外來鍵約束MySql
- SQL外來鍵約束的含義及建立SQL
- 生成指令碼,得到所有表的外來鍵約束,然後刪除並重建這些約束指令碼
- 查詢(看)表的主鍵、外來鍵、唯一性約束和索引索引
- 表外來鍵未加索引之處理索引
- 解決無法刪除表,提示被外來鍵約束引用
- SQL SERVER中找出拙劣的約束,索引,外來鍵SQLServer索引
- ORACLE: 查詢(看)表的主鍵、外來鍵、唯一性約束和索引Oracle索引
- 【實驗】【外來鍵】小議外來鍵約束對應用程式的影響
- AppBoxFuture(七): 分散式外來鍵約束APP分散式
- mysql不能新增外來鍵約束怎麼辦MySql
- mysql啟動和關閉外來鍵約束MySql
- 詳解外來鍵約束(foreign key)
- 資料完整性約束:主鍵、外來鍵、各種約束的建立刪除語句
- PostgreSQL11preview-支援陣列外來鍵約束SQLView陣列
- 外來鍵約束drop table cascade constraintsAI
- 查詢外來鍵約束、子表欄位等資訊的SQLSQL
- 修改外來鍵為validate時需要驗證資料是否符合外來鍵約束
- Oracle 外來鍵的級聯處理Oracle
- 不明原因的約束報錯的兩種處理方式
- mysql資料庫匯入外來鍵約束問題MySql資料庫
- mysql~資料完整性考慮~外來鍵約束MySql
- MySQL·捉蟲動態·DROPDATABASE外來鍵約束的GTIDBUGMySqlDatabaseTiDB
- 分割槽表truncate慢處理
- 資料庫約束 主鍵-唯一性-Check-外來鍵資料庫
- 約束和異常處理
- Mysql-基本練習(06-唯一約束、外來鍵約束、新增、刪除單列)MySql
- 關於外來鍵約束和對應主鍵資訊的查詢指令碼指令碼
- 分散式資料庫環境中,外來鍵約束的問題??分散式資料庫