Du kan bruge INSERT... IGNORE syntaks, hvis du ikke vil foretage dig noget, når der er en dubletpost.
Du kan bruge REPLACE INTO syntaks, hvis du vil overskrive en gammel post med en ny med samme nøgle.
Eller du kan bruge INSERT... ON DUPLICATE NØGLEOPDATERING syntaks, hvis du i stedet vil udføre en opdatering af posten, når du støder på en dublet.
Edit:Tænkte jeg ville tilføje nogle eksempler.
Eksempler
Lad os sige, at du har en tabel med navnet tbl
med to kolonner, id
og value
. Der er én indgang, id=1 og værdi=1. Hvis du kører følgende sætninger:
REPLACE INTO tbl VALUES(1,50);
Du har stadig én post med id=1 værdi=50. Bemærk, at hele posten blev SLETTET først og derefter genindsat. Så:
INSERT IGNORE INTO tbl VALUES (1,10);
Handlingen udføres med succes, men intet er indsat. Du har stadig id=1 og værdi=50. Til sidst:
INSERT INTO tbl VALUES (1,200) ON DUPLICATE KEY UPDATE value=200;
Du har nu en enkelt post med id=1 og værdi=200.