MysqlのSQLの書き方で、「条件にあうレコードがあったら、何もしない。なかったら挿入する」ということを、1つのSQL文で行うことはできないでしょうか?


以前似た質問で、「あったら更新、なかったら挿入」を聞いたのですが、今回は、「あったら何もしない」でお願いします。

もしかして、「あったら更新」の部分で同じ値を渡すことで、「同じ値で更新=何も変化しない」にすればいいのでしょうか?
できれば負荷をかけたくないので、何もしない方がいいです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2006/12/19 12:50:46
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント60pt

「条件にあうレコード」の部分が柔軟には対応できないのですが、

Primary Key, UNIQUE 制約に違反するコードは挿入しないオプションはあります。


INSERT IGNORE 構文

http://dev.mysql.com/doc/refman/4.1/ja/insert.html

多くのレコードの INSERT でキーワード IGNORE が指定されていると、テーブルの既存の PRIMARY または UNIQUE キーと重複するレコードはすべて無視され、挿入されない。
id:dingding

ありがとうございます。

条件は複雑でないので、使えるかも知れないです。

見てみます。

2006/12/15 18:03:56

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません