andrisp: veicot insertu, kurš pārkāpj unikalitātes nosacījumu tiek atgriezta konkrēta kļūda.
Piemēram MySQL: http://dev.mysql.com/doc/refman/5.1/en/err...ges-server.html
Tad arī uz kļūdas numura (mysql_errno() fja) nr 1169 (ER_DUP_UNIQUE) tu varēsi rādīt savu jūzerfriendlī error mesidžu.
Šadā veidā tiek mazāk noslogota DB - select+insert vietā ir tikai viens insert. Un otrkārt, mazāks pārbaudes kodā - vieglāk uzturams kods. DB jau ir DB tapēc, ka tā uztur datus - tad lai arī tā rūpējas par datu integritāti (constrainti/trigeri/utt), nevis visas pārbaudes izmētāt pa kodu un vēl censties atcerēties, kur un kā tās pielietot.
Tāpēc vispareizāk būtu darīt kā Zandis saka - uzlikt unique constraintu uz vārda lauku.