Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [sql] Optymalizacja
Forum PHP.pl > Forum > Przedszkole
-void-
Chcę zapisywać do bazy email tylko wtedy, kiedy jeszcze nie ma takiego w bazie. Da się jednym zapytaniem? Teraz robię to tak że najpierw pobieram SELECTem a potem INSERTem zapisuję, jeśli pierwsze zapytanie nie zwróciło rekordów, ale nie chcę tak. Mam tabelę emails z jedną kolumną email, które jest kluczem unikalnym.
Skie
Nie jestem pewniem czy istnieje takie zapytanie, aczkolwiek będzie musiało ono wykonać to samo co tamte 2 zapytania, więc wątpię czy nie licząc skrócenia kodu, da to jakieś efekty wydajności/szybkości.
phpion
Możesz zrobić po prostu zwykły INSERT i po nim sprawdzić czy wystąpił błąd naruszenia unikalności. Wtedy wyświetlasz komunikat, że takowy e-mail już istnieje w bazie danych.

Jeśli baza danych to MySQL to możesz skorzystać z tworu jakim jest REPLACE.
-void-
Ok, dzięki, o to chodziło (ufam, że macie rację), myślałem że jest jakoś fajnie to zaimplementowane bo w sumie chyba często się taka sytuacja zdarza, przynajmniej mi. Zaraz sprawdzę, jak działa ten błąd gdy INSERT próbuje zapisać coś co już jest w bazie a ma atrybut UNIQUE. Powinienem dać radę chyba. Dzięki.
-void-
Nie mogę edytować:
właśnie chodziło mi o coś w rodzaju REPLACE, czyli jednak twórcy o tym pomyśleli. Tak, moja baza to MySQL.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.