-void-
29.07.2008, 18:14:30
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
29.07.2008, 18:16:26
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
29.07.2008, 18:16:58
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-
29.07.2008, 18:20:16
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-
29.07.2008, 18:22:42
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.