Możesz zmodyfikować swoją WSTAWKĘ tak, aby wyglądała mniej więcej tak:
INSERT INTO tablename (tag)
SELECT $tag
FROM tablename
WHERE NOT EXISTS(
SELECT tag
FROM tablename
WHERE tag = $tag
)
LIMIT 1
Gdzie $tag
to tag (odpowiednio cytowany lub oczywiście jako symbol zastępczy), który chcesz dodać, jeśli jeszcze go tam nie ma. To podejście nie spowoduje nawet wywołania INSERT (i późniejszej automatycznej inkrementacji marnotrawstwa), jeśli tag już tam jest. Prawdopodobnie mógłbyś wymyślić ładniejszy SQL, ale powyższe powinno wystarczyć.
Jeśli twoja tabela jest poprawnie zindeksowana, wtedy dodatkowy SELECT do sprawdzenia istnienia będzie szybki, a baza danych i tak będzie musiała to sprawdzić.
To podejście nie zadziała jednak w przypadku pierwszego tagu. Możesz zainicjować swoją tabelę tagów tagiem, który Twoim zdaniem zawsze będzie używany, lub możesz osobno sprawdzić pustą tabelę.