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
seba22
post
Post #2





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

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


Cytat(jasin @ 3.10.2009, 08:05:02 ) *
A takie coś zadziała:
  1. INSERT INTO tabela(IMIE) VALUES('mruczek')
  2. ON DUPLICATE KEY UPDATE IMIE=VALUES(IMIE);
  3.  



Czy twój kod dotyczy opcji w której mam unique ?

No niestety nie mogę mieć unique, chociaż ID jest przecież wartością niejako jednoznaczną z racji faktu automatycznej numeracji.

Odnośnie selecta z przodu, właśnie w ten sposób obecnie kod jest wykonywany.

Najpierw w php sprawdzam czy istnieje, jeżeli nie to dodaje.

Szukałem czy nie dało by się tego jeszcze skrócić od strony technicznej.

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: 14.10.2025 - 21:06