Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Jak zaaktualizować rekord i dodać jeżeli nieistnieje.
seba22
post
Post #1





Grupa: Zarejestrowani
Postów: 293
Pomógł: 4
Dołączył: 28.01.2005

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


Zdrastwujcie riebiata !

Mam miłe zapytanie dotyczące MySQL.

Załóżmy że mamy tabelę o nazwie "kotki" a w niej wartości
ID IMIĘ
1 xx
2 xx


Teraz chce zmienić imię rekordu nr 2.

Wykonujemy

Update xxx set xxx='ala' where xxx = id = 2;

if zapytanie = 1 then
{
zmieniono pomyslnie}
else
{
insert into kotki id=2,imie='ala
}


Czy nie da się już w jednym zapytaniu SQL połączyć
Update, on error insert new ?

Jeżeli istnieje taki rekord, to update, jezeli nie to insert.
Tylko żeby upakować to w ramach optymalizacji do jednego "query" (IMG:style_emoticons/default/smile.gif)

pozdrawiam


Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
PawelC
post
Post #2





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Sprawdź najpierw czy istnieje taki rekord przy pomocy mysql_num_rows, jeżeli niema to dodaje do bazy jeżeli jest to aktualizuje. Pozatym Twoje zapytanie dziwnie wygląda, powinno być tak:
  1. UPDATE xxx SET xxx='ala' WHERE id = 2;

A nie tak jak Ty miałeś, bo Twoje zapytanie jest błędne.
Kolejne pytanie dlaczego sam ustalasz numer ID?
Wydaje mi się że w jednym zapytaniu tego nie upchasz, najpierw musisz sprawdzić czy istnieje taki rekord w bazie, poźniej zrobić update lub insert osobnym zapytaniem.
Go to the top of the page
+Quote Post

Posty w temacie


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: 17.10.2025 - 19:29