Je zou je INSERT kunnen aanpassen om er ongeveer zo uit te zien:
INSERT INTO tablename (tag)
SELECT $tag
FROM tablename
WHERE NOT EXISTS(
SELECT tag
FROM tablename
WHERE tag = $tag
)
LIMIT 1
Waar $tag
is de tag (correct geciteerd of als tijdelijke aanduiding natuurlijk) die u wilt toevoegen als deze er nog niet is. Deze aanpak activeert niet eens een INSERT (en de daaropvolgende verspilling van auto-increment) als de tag er al is. Je zou waarschijnlijk een mooiere SQL kunnen bedenken dan dat, maar het bovenstaande zou het lukken.
Als uw tabel correct is geïndexeerd, zal de extra SELECT voor de bestaanscontrole snel zijn en zal de database die controle toch moeten uitvoeren.
Deze aanpak werkt echter niet voor de eerste tag. U kunt uw tagtabel voorzien van een tag waarvan u denkt dat deze altijd zal worden gebruikt, of u kunt een aparte controle uitvoeren op een lege tabel.