Om du verkligen vill skriva din egen (fungerande) fråga...
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
)
... men MySQL kan hantera allt detta åt dig!
Du behöver inga primärnycklar för att få MySQL att hantera detta åt dig, du bör lägga till en UNIQUE
nyckelbegränsning på den kombinerade uppsättningen av de två kolumnerna.
Fråga för att lägga till den unika nyckeln dent_group_uniq_key
till groupdentlink
.
ALTER TABLE groupdentlink ADD UNIQUE KEY `dent_group_uniq_key` (
f_dent_id, f_group_id
);
Använd sedan INSERT IGNORE
på din fråga:
INSERT IGNORE INTO groupdentlink (
f_dent_id, f_group_id, f_schedule_id
) VALUES (
'$_POST[id]', '$groupid', '$scheduleid'
)
INSERT IGNORE
kommer att försöka infoga en rad i din tabell, om den misslyckas på grund av en nyckelbegränsning kommer det att verka som om ingenting händer.