Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [sql] Optymalizacja
--void--
post
Post #1





Goście







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.
Go to the top of the page
+Quote Post
Skie
post
Post #2





Grupa: Zarejestrowani
Postów: 555
Pomógł: 84
Dołączył: 20.02.2008
Skąd: Małopolska

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
phpion
post
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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.

Ten post edytował phpion 29.07.2008, 18:18:01
Go to the top of the page
+Quote Post
--void--
post
Post #4





Goście







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.
Go to the top of the page
+Quote Post
--void--
post
Post #5





Goście







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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 22:09