Si vous voulez vraiment écrire votre propre requête (de travail)..
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
)
... mais MySQL peut gérer tout cela pour vous !
Vous n'avez pas besoin de clés primaires pour que MySQL gère cela pour vous, vous devez ajouter un UNIQUE
contrainte de clé sur l'ensemble combiné des deux colonnes.
Requête pour ajouter la clé unique dent_group_uniq_key
vers groupdentlink
.
ALTER TABLE groupdentlink ADD UNIQUE KEY `dent_group_uniq_key` (
f_dent_id, f_group_id
);
Ensuite, utilisez INSERT IGNORE
sur votre requête :
INSERT IGNORE INTO groupdentlink (
f_dent_id, f_group_id, f_schedule_id
) VALUES (
'$_POST[id]', '$groupid', '$scheduleid'
)
INSERT IGNORE
essaiera d'insérer une ligne dans votre tableau, s'il échoue en raison d'une contrainte de clé, il agira comme si de rien n'était.