TRUNCATE失敗でORA-02266
TRUNCATE失敗でORA-02266が発生することがあります。
これは外部キーが有効なためにおこります。
テーブルに対して有効な外部キーを検索するSQLです。
SELECT CONSTRAINT_NAME, TABLE_NAME, STATUS FROM USER_CONSTRAINTS WHERE R_CONSTRAINT_NAME IN ( SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE TABLE_NAME = 'テーブル名' )
実行結果は、外部キー名、テーブル名、ENABLE or DISABLEのどちらかになります。
TRUNCATEしたい場合はこの外部キーをDISABLEにする必要があります。
外部キーを無効化するには以下を実行します。
ALTER TABLE テーブル名 DISABLE CONSTRAINTS 外部キー名
これで外部キーを無効化し、TRUNCATEすることができます。TRUNCATE実行後、以下で外部キーを有効化します。
ALTER TABLE テーブル名 ENABLE CONSTRAINTS 外部キー名
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント