アプリ版:「スタンプのみでお礼する」機能のリリースについて

データベースのすべての表をけしたくてSQLPLUSでTRUNCATEしようとするんですが、
表には使用可能な外部キーによって参照される一意キー/主キーが含まれています。

というエラーメッセージがでることがあります。

DBA STUDIOですとテーブル名を選択してDELキーですんなり消せるのですが・・・。

キーの参照設定とかを消したりすればよいのでしょうか?
具体的には、TRUNCATEを行う前にどのようなSQLPLUSコマンドを打てばいいのでしょうか。

A 回答 (2件)

alter table テーブル名 disable constraint 参照整合性制約名;


でdisableにしてからtruncateで実行できるはずです。
終わったら
alter table テーブル名 enable constraint 参照整合性制約名;
でenableにします。
#すべての表を消すのであればUSER_CONSTRAINTSのCONSTRAINT_TYPEが'R'(参照整合性)ですべての制約を取得してdisableにすればよいと思います。

>DBA STUDIOですとテーブル名を選択してDELキーですんなり消せるのですが・・・。

DBA STUDIOはおそらくdeleteをしていると思います。
    • good
    • 0
この回答へのお礼

>DBA STUDIOはおそらくdeleteをしていると思います。

有無をいわさず消してくれるDELETEというSQL文があるということでしょうか?

お礼日時:2006/11/26 06:47

通常、外部参照しているほうを先にtruncateすればいいと思います。


相互参照になっている場合はindexなどの制限をdropしたあと削除しcreateする方法でしょうか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!