0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Oracle] 全テーブルのデータを削除する/データ件数を確認する [オラクル]

Posted at

やりたいこと

全てのテーブルデータを削除したい。
全てのテーブルのデータ件数を確認したい。

上記のように「全てのテーブルに〇〇したい」という操作を簡単に行う方法を紹介します。

テーブル(表)のデータを削除するSQL

OracleのSQLでデータを削除する方法は「DELETE」と「TRUNCATE」の2種類があります。
操作を取り消す必要がない場合は「TRUNCATE」が圧倒的に高速なのでおすすめです。
ただし取り消す(ROLLBACK)ことはできないので注意が必要です。

-- 特定テーブルのデータを全て削除する(ROLLBACK不可)
TRUNCATE TABLE <テーブル名>;
-- 特定テーブルのデータを全て削除する(ROLLBACK可)
DELETE FROM <テーブル名>;

全てのテーブルのデータを削除する方法

特定テーブルのデータを削除する方法は紹介しました。
全てのテーブルのデータを削除するためには、テーブルの数だけ「TRUNCATE」を実行する必要があります。
「TRUNCATE」文を用意することができれば削除は簡単です。ここでは全てのテーブルに対して「TRUNCATE」文を簡単に用意する方法を紹介します。

SELECT 'TRUNCATE TABLE '||table_name||';' FROM user_tables ORDER BY table_name;

このSQLを実行すると、対象のDBユーザの全てのテーブルに対する「TRUNCATE」文が表示されます。
あとは、コピー&ペーストでファイルに保存したり直接実行することで、データの削除が行えます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?