INSERT INTO SELECT文で挿入先テーブルに存在しないレコードのみ検索することはできますか。
IGNOREを使えば、挿入先テーブルに存在するレコードは無視されるのでエラーは回避できるのですが、IGNOREに頼らずに、挿入先テーブルにすでに存在するレコードは検索しないようにSELECT文を書けば、数件の検索で済むため圧倒的に高速化できると思うのです。
挿入先テーブルは、主キー1、主キー2、主キー3、主キー4、値1の5カラムで構成されています。
主キー1 NOT IN(SELECT 主キー1 FROM table)
OR 主キー2 NOT IN(SELECT 主キー2 FROM table)
OR 主キー3 NOT IN(SELECT 主キー3 FROM table)
OR 主キー4 NOT IN(SELECT 主キー4 FROM table)
感覚的な話で恐縮ですが、やりたい事はこんな感じで、これだと多分うまくいきません。
DBはmysql-5.1.39-4.fc12.i686です。
No.1ベストアンサー
- 回答日時:
> 数件の検索で済むため圧倒的に高速化できる
その分のオーバーヘッドを考えればignoreの方が圧倒的に有利だと思います
代替案が浮かばないため、今はIGNOREで運用しています。
今のところINSERT処理は数分で終了するので、このぐらいなら離席しないで待っていられるのですが、今後件数がどんどん増えていくと、しんどいので何か代替案がないかと考えています。
おっしゃる通り、検索条件が複雑なためかなりのオーバーヘッドがかかると思いますが、もしうまいSELECT文を考えていただけたら、実際に流して処理時間を計測してみたいのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle SQLについて教えて下さい。 主キーを持ったカラムを主キーの機能を持たせたまま カンマ区切りで文字列 1 2023/03/27 22:47
- Access(アクセス) MAXで0が出力される 1 2022/03/31 21:43
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- Oracle SQL update方法 2 2022/06/22 14:07
- MySQL 共通点はあります。何が違うのでしょうか? 1 2023/01/27 05:22
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- PostgreSQL 列が存在しないと言われる 2 2023/02/10 18:33
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
一つ前に戻るには…
-
グループからランダムに抽出す...
-
1000万件のデータをmysqlで効率...
-
挿入先テーブルに存在しないレ...
-
mysqlでJOIN文
-
Accessでデータシートに同じデ...
-
SQLでSUMなどの関数でデータが...
-
update文で改行を入れる
-
SELECT 文の NULL列は?
-
ROWNUMでUPDATEをしたいのです...
-
他のデータベースとのテーブル結合
-
SQL*LoaderでCSVから指定した列...
-
sqlplusで表示が変なので、出力...
-
2台のサーバー間でのテーブル...
-
会社の飲み会の幹事になり、座...
-
SQL、2つのテーブルで条件一致...
-
SQL 複数テーブルのupdate
-
SQLで違うテーブルの値を比較し...
-
UPDATE文の更新順序について
-
L2SWはARPテーブルを持っている?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
一つ前に戻るには…
-
ビューに追加・削除が出来ません。
-
最大値を持つレコードを削除したい
-
mysqlでJOIN文
-
SQL文による残業時間の算出につ...
-
mysqlのフィールド名
-
SQL一発でカレンダー表示は可能...
-
矛盾していないでしょうか?
-
1列について重複行を除いて全列...
-
副問い合わせの限界値はどれく...
-
mysqlで外部キーをつけたカラム...
-
MySQLのFOREIGN KEYについて
-
MySQLのテーブル設計について
-
PHP上のSQLで、SELECT文をいく...
-
SQLを教えてください
-
char型データ 固定長のままでs...
-
【ストアドプロシージャ】条件...
-
グループからランダムに抽出す...
-
売上管理
-
他のDBにあるテーブル内容をcre...
おすすめ情報