本当に独自の(機能する)クエリを作成したい場合は..
INSERT INTO groupdentlink (
f_dent_id, f_group_id, f_schedule_id
) SELECT
'$_POST[id]' f_dent_id,
'$groupid' f_group_id,
'$scheduleid' f_schedule_id
FROM DUAL
WHERE NOT EXISTS (
SELECT 1
FROM `groupdentlink`
WHERE
f_dent_id = '$_POST[id]' AND f_group_id = '$groupid'
LIMIT 1 -- will stop mysql to stop searching after first match
)
...しかし、MySQLはこれをすべて処理できます!
MySQLでこれを処理するために主キーは必要ありません。UNIQUE
を追加する必要があります 2つの列の組み合わせセットに対するキー制約。
一意のキーdent_group_uniq_key
を追加するためのクエリ groupdentlink
へ 。
ALTER TABLE groupdentlink ADD UNIQUE KEY `dent_group_uniq_key` (
f_dent_id, f_group_id
);
次に、INSERT IGNORE
を使用します クエリについて:
INSERT IGNORE INTO groupdentlink (
f_dent_id, f_group_id, f_schedule_id
) VALUES (
'$_POST[id]', '$groupid', '$scheduleid'
)
INSERT IGNORE
テーブルに行を挿入しようとしますが、キーの制約が原因で失敗した場合は、何も起こらないように動作します。