- ベストアンサー
truncate文で全テーブルを一気に削除できるか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
declare CURSOR CUR1 IS SELECT * FROM USER_TABLES; begin FOR CUR_RECORD IN CUR1 LOOP EXECUTE IMMEDIATE 'TRUNCATE TABLE "'||CUR_RECORD.TABLE_NAME||'"'; END LOOP; end; exit / というPL/SQLスクリプトを投入すれば、自己所有のテーブルは空に出来ます。 有無を言わさずに空になるので、気を付けてくださいね。
その他の回答 (2)
- nakanaka1q
- ベストアンサー率0% (0/3)
Oracleであれば、私は以下のようにしてます。 例えばtrn.sqlっていうtruncate文の集まったファイルを作成して実行してます。 余計なものが出力されないようにsetを使ってますが、 足りないかもしれませんので詳細はマニュアルを参考にして下さい。 spool trn.sql set lines 1000 set pages 0 set trimspool on set feedback off select 'truncate table ' || table_name || ';' from user_tables; spool off @trn
- neko1963
- ベストアンサー率49% (127/258)
テーブルごとに truncate するしかないです。 SQLをテキストファイルに書き込んでしまったらどうですか? どんなRDBMS環境かわからないので回答しにくいのですが spool table.log select table_name from user_tables; spool off としておいて、table.log 中の テーブル名を利用するとか・・・。
関連するQ&A
- 特定のテーブルを除いたバックアップ
データベース名をsampleとしますとバックアップのコマンドは mysqldump --password='xxxxx' sample > backup.sql となるのですが、このデーターベースの特定のテーブルを除いたものをバックアップしたいのですが どうすればいいのでしょうか? 以下のようにテーブルを個別に指定してひとつひとつコマンドを発行するしかないのでしょうか? mysqldump --password='xxxxx' sample tableA > tableA.sql mysqldump --password='xxxxx' sample tableB > tableB.sql mysqldump --password='xxxxx' sample tableC > tableC.sql よろしくお願いします。
- ベストアンサー
- MySQL
- SQLiteのUPDATE文を教えてください。
UPDATE tableA, tableB SET tableA.name = tableB.name WHERE tableA.id = tableB.id; 上記のSQLが他のデータベースでは動きますが、SQLiteでは動きません。 同意味のSQLはどう書くのでしょうか。お願いします。
- ベストアンサー
- その他(データベース)
- バッチファイルでTRUNCATE TABLE
バッチファイルでTRUNCATE TABLEするにはどうしたら良いのでしょうか? バッチファイルからSQL文を発行するやり方がわかりません。
- 締切済み
- SQL Server
- DBの全ユーザーテーブルに対するtruncate
PostgreSQLを勉強中の者です。 データベースの全ユーザーテーブルに対して、個別にtruncateをかけるいい方法を探しています。 \pset pager \dt 以上のコマンドを実行して、テーブル一覧を表示できることをはわかったのですが、ここから先の妥当なやり方がわかりません。 リダイレクトして、テキストエディタで加工して、シェルのようなもので流し込む・・・のような形になるのでしょうか? 実例も含めて教えていただけると助かります。 また、truncateされたことの上手い確認方法もあれば御教示下さい。 よろしくお願いします。
- 締切済み
- PostgreSQL
- 異なるテーブル間の和
テーブルAの属性item1とテーブルBのitem1の和を求めるにはSQLでどのように記述すれば良いのでしょうか?? tableA ------ id item1 item2 pointer tableB ------ id item1 item2 pointer という2つのテーブルで,tableBのpointerはtableAのidを指しています.
- 締切済み
- その他(データベース)
- 1つのテーブルから複数のテーブルへのデータ振分け
MySQLを使用して、tableAというテーブルのデータを tableB,tableC,tableDというテーブルに振り分けたいと思っています。 1日1回、自動的に行いたいと思っています。 たとえば、tableAのテーブル構成が下記のようなもので ================== name sex birth address phone email company ================== name,address,phoneはtableBに name,sex,birthはtableCに name,companyはtableDに分けるというような イメージです。 私の考えでは、下記のようなSQL文をPHPから呼び出して、タスクで 実行させてそれぞれ別のテーブルに振り分けようと思っている のですが、、もっと良いツールや方法があればお教えいただけ ませんでしょうか。 宜しくお願いいたします。 ---------------------------------------------------------------------------------------------------- INSERT INTO tableB (name,address,phone) SELECT tableA.name,tableA.address,tableA.phone FROM tableA AND INSERT INTO tableC (name,sex,birth) SELECT tableA.name,tableA.sex,tableA.birth FROM tableA AND INSERT INTO tableD (name,company) SELECT tableA.name,tableA.company FROM tableA; ----------------------------------------------------------------------------------------------------
- 締切済み
- MySQL
- 3つのテーブルを結ぶSQLの書き方
お世話になります。 3つのテーブルを結びつけるSQLの書き方がわかりません。ご指導お願いします。 [TableA][ID] [TableB][ID] [TableC][ID] [TableA]と[TableB]をLEFT JOINでつなぐ。 上の結果を[TableA][ID]と[TableC][ID]でInner joinでつなぐ。 つまり・・・ SELECT TableA.ID,TableB.ID FROM TabelA LEFT JOIN TableB→この結果 SELECT TableA.ID,TableB.ID TableC.ID From この結果 INNER JOIN TableC ON TableA.ID = TableC.ID こんな感じのことをやりたいのですが、記述の方法がわかりません。 どなたかお知恵をお貸しください。
- ベストアンサー
- その他(データベース)
- SQL2000でのTRUNCATE TABLE
お世話になります、AccessからSQL2000に接続し、 TRUNCATE TABLEを使いテーブルのデータをクリアしたいのですが、どのようにしたらよろしいのでしょうか。御存知の方がいらっしゃいましたら御教授ください。よろしくお願いします。
- ベストアンサー
- その他(データベース)
- 2つのテーブルをLIKE演算子のように結合させたい
こんにちは DB2 ver 8.1 fixPak5 VB6 にて開発を行っております。 TABLEa の NAMAEa KANKEIa TABLEb の ADANAb FLAG というテーブルがあるとします そしてそれぞれのテーブルに TABLEa のNAMAEa に '山田' TABLEb のADANAb に '山' というデータがはいっていたとき この2つのデータをLIKE演算子のように結合させたいのですが、どのようにしたらいいのでしょうか。 イメージとしては SELECT NAMAEa, KANKEIa, FLAG FROM TABLEa LEFT OUTER JOIN TABLEb ON NAMAEa LIKE ADANAb% 伝わるでしょうか・・・ できたら1つのSQL文で完結させたいです。 駄目だったらRecordSetにもたせて処理しようかと思いますが、 今後の為にも何か方法があるのでしたら教えてください。
- ベストアンサー
- その他(データベース)
- truncate文を発行したときに
データベースのすべての表をけしたくてSQLPLUSでTRUNCATEしようとするんですが、 表には使用可能な外部キーによって参照される一意キー/主キーが含まれています。 というエラーメッセージがでることがあります。 DBA STUDIOですとテーブル名を選択してDELキーですんなり消せるのですが・・・。 キーの参照設定とかを消したりすればよいのでしょうか? 具体的には、TRUNCATEを行う前にどのようなSQLPLUSコマンドを打てばいいのでしょうか。
- ベストアンサー
- Oracle
お礼
ありがとうございます! これはとても助かります 一行ずつやらねばならないものと思い込み、無駄な質問を追加してしまったので、1日たったら削除するようにします。 すいませんでした。