Použijte unique constraint
. Pokuste se vložit/aktualizovat záznam a zachytit výjimku vyvolanou při porušení jedinečného omezení. Toto je jediný způsob, jak zaručit jedinečné e-mailové adresy; první kontrola a poté aktualizace jsou náchylné k problémům se souběžností, protože je možné, že někdo jiný aktualizuje svůj záznam na stejnou hodnotu, jakou se pokoušíte nastavit, těsně poté, co jste provedli kontrolu a před aktualizací záznamu.
Také:zjistěte, jak používat where
-klauzule. Nyní získáváte VŠECHNY záznamy, iterujete je atd., což zabírá zbytečně mnoho zdrojů, trvá to příliš dlouho a je to jen obyčejné plýtvání. Pokud chcete zkontrolovat záznam odpovídající kritériím, napište:
Select foo, bar from table where baz = 123
Kde baz = 123
je vaším kritériem. Představte si, co by se stalo, když máte ve svém aktuálním nastavení 500 nebo dokonce 500 000 záznamů. Databáze by provedla váš dotaz, shromáždila VŠECHNY řádky z této databáze, přenesla je do vaší aplikace, kde by vaše aplikace iterovala všech 500 000 výsledků. Nebo požádáte DB, aby udělal to, v čem je dobrý (a proč to vůbec používáte):Dejte všechny záznamy, které odpovídají kritériu X. Získali byste 1 nebo žádný záznam (vzhledem k jedinečné omezení):1 =některý záznam odpovídá vašemu kritériu, žádný =neexistují žádné záznamy. Ušetří přenos a "ruční prohlížení" 499 999 záznamů;-)