
No.4
- 回答日時:
全件じゃなくって条件が成立するレコードだけを削除したいなら、
delete from テーブル名 where
プライマリキー in (select プライマリキー from テーブル名 where 条件 and rownum <= 5000)
commit;
といった感じですが。
回答ありがとうございます。
rownum <= 5000
が正しい書き方なのですね。DB環境はoracleなので
指摘していただいて助かりました。
教えていただいたSQLを加工して、削除SQLを作成したいと思います。
No.3
- 回答日時:
> oracleに登録された数億件のデータを数日に分割して削除するため、
数字は例なんでしょうケド、10日では終わらないでしょ。
数億消すと残るレコードはどのくらい?
必要なレコードを別テーブルに抽出して、元テーブルをTruncateが良いかも。
数億レコードならパーティションテーブル化されてませんか?
パーティションテーブルなら、パーティション単位でも消せますし。
回答ありがとうございます。
普段、自分は触れないDBで、しかも作成当時の資料がまったく残っていないので、パーティション化されているかわからない状態です。
なので、今回はパーティション化されていない前提で削除を行おうと思います。
No.1
- 回答日時:
>delete from テーブル名 where 条件 set rowcount = 5千;
これはoracleの構文では無いようですが、oracle前提という事で回答します。
rownum < 5000 の指定をすれば、5000件の抽出は行ってくれます。
delete from a where rounum < 5000
commit;
が、母体が数億ある状態ですと、5000件を抽出する為に全て読み込んでから
さらに5000件を取り出す形になるので、サーバの負荷が耐えられるのか心配です。
単純にそのテーブルを空にすればよいのであれば、truncate 命令を使った方が
簡単で早いです。
回答ありがとうございます。
rounum = 5000
は記述できなかったんですね。DBはoracleを使用しているので、
指摘していただいて助かりました。
実際に5千件~1万件程度抽出し、サーバ負荷を計測したイと思います。
条件に一致するレコードのみを削除するため、truncateが使用できないのが痛いです。全削除なら楽なんですけどね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法 1 2022/11/24 15:01
- その他(パソコン・スマホ・電化製品) Googleカレンダーで不要データを一括削除したい 1 2023/08/02 12:42
- その他(データベース) c言語の問題です。これを踏まえてコーディングしたいのでおしえていただきたいです。 3 2023/08/03 09:27
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Excel(エクセル) 特定のデータの抽出方法を教えてください@Excel 4 2023/06/13 18:38
- Visual Basic(VBA) 3つの条件を指定してVBAで行を削除したい 条件1:分類1が重複 条件2:分類2が重複 条件3:個数 6 2022/06/24 11:07
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- Excel(エクセル) マクロで行を追加、削除すると行位置がずれますが、解決方法はありませんか?。 5 2022/05/28 16:03
このQ&Aを見た人はこんなQ&Aも見ています
-
数百万件レコードのdelete
SQL Server
-
大量レコードをTRUNCATEせずにすばやく削除する方法
Oracle
-
SQL、2つのテーブルで条件一致したものだけdeleteする方法は?
Oracle
-
-
4
データを削除しても表領域の使用率が減りません
Oracle
-
5
PL/SQLでログを確認したい。
Oracle
-
6
EXISTSを使ったDELETE文
SQL Server
-
7
カンマがデータとして入ってるCSVについて
Oracle
-
8
SQL>UPDATEと同時にその件数をCOUNTする方法
その他(データベース)
-
9
トランザクションログを出力せずにデータを削除する方法
Oracle
-
10
PL/SQLカーソルの2重FORループができません
Oracle
-
11
ORA-01013のエラーについて経験のある方お願いします。
Oracle
-
12
【PL/SQL】 DELETE文で削除された件数を取得したい
Oracle
-
13
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
14
select句副問い合わせ 値の個数が多すぎます
Oracle
-
15
select insertで複数テーブルから値を取得したい
Oracle
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
MERGE文を単体テーブルに対して...
-
結合と副問い合わせの違い
-
oracleの分割delete
-
固定値を含む結合と複数テーブ...
-
select文でフリーズします。
-
select句副問い合わせ 値の個...
-
SQL GROUPで件数の一番多いレコ...
-
SELECTの結果で同一行を複数回...
-
複数テーブルのMAX値の行データ...
-
select insertで複数テーブルか...
-
OracleのSQL*PLUSで、デー...
-
Oracleでの文字列連結サイズの上限
-
DataGridViewの内容をDBに反映...
-
最新の日付とその金額をクエリ...
-
カレントレコードが無い事を判...
-
ファイル書込みで一行もしくは...
-
差し込み印刷のレコード数について
-
ワードの差込印刷で教えて下さ...
-
【修正希望】【マクロ】元デー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
select insertで複数テーブルか...
-
select句副問い合わせ 値の個...
-
SELECTの結果で同一行を複数回...
-
MERGE文を単体テーブルに対して...
-
固定値を含む結合と複数テーブ...
-
oracleの分割delete
-
SQL GROUPで件数の一番多いレコ...
-
外部結合とor条件混在の記述方法
-
複数テーブルのMAX値の行データ...
-
unionの結果は集計はできないで...
-
unionでマージした副問合せを結合
-
他のテーブルを参照した値はupd...
-
SET句内で複数の条件を指定して...
-
集計後の数値が倍になる
-
結合と副問い合わせの違い
-
SQLの書き方(チェックボックス)
-
マテビューのNOTNULL設定について
-
DELETE 文とEXISTSの使い方につ...
-
異なるテーブルのレコード削除
おすすめ情報