レコード確認してからのINSERT

レコードがない場合に限りinsertする方法。キーにしてエラーにすればよいって言われるのはわかっているけど、エラーメッセージ見たくない(見せたくない)人向け。

INSERT INTO テーブル(col1, col2)
  SELECT '値1', '値2' FROM DUAL
    WHERE NOT EXISTS(SELECT 'X' FROM テーブル WHERE col1 = '確認したい値');

テーブルの検索結果をNOT EXISTSで判定して、INSERT SELECTでインサートする。

参考サイトは以下。

http://scrap.php.xdomain.jp/exists_insert/