Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: UPDATE jeżeli istnieje, INSERT jeżeli nie
Forum PHP.pl > Forum > Bazy danych > MySQL
NeoX
Witajcie!
Próbuję stworzyć zapytanie w którym baza utworzyłaby wiersz jeżeli takowy by nie istniał wcześniej.
Znalazłem dwie, no trzy takie funkcje:
CODE

IF EXIST (SELECT * FROM `kadu_stats` WHERE `uid_group_id=100`) UPDATE `kadu_stats` SET `letters_recv=letters_recv+100` WHERE `uid_group_id=100` ELSE INSERT INTO `kadu_stats` VALUES `uid_group_id=100`;


CODE
UPDATE `kadu_stats` SET `letters_recv=letters_recv+100` WHERE `uid_group_id=100` IF @@ROWCOUNT=0 INSERT INTO `kadu_stats` (uid_group_id,letters_recv) VALUES (100,100);


CODE
INSERT INTO table kadu_stats VALUES uid_group='100',letters_recv='100' ON DUPLICATE KEY UPDATE letters_recv=letters_recv+'100';


I teraz przy dwóch pierwszych mam jakże dużo mówiący błąd ERROR 1064 (42000) sciana.gif
Trzecie działa jak zwykły insert.
Możecie mi podpowiedzieć co wywołuje te błędy?
Nie znam się na SQLu niestety i nie wiem sad.gif
bełdzio
looknij na to http://dev.mysql.com/doc/refman/5.0/en/replace.html
erix
Cytat
Próbuję stworzyć zapytanie w którym baza utworzyłaby wiersz jeżeli takowy by nie istniał wcześniej.

Załóż sobie index typu UNIQUE i korzystaj z INSERT ... ON DUPLICATE.
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.