Wstawianie do tabeli MySQL lub aktualizacja, jeśli istnieje

Chcę dodać wiersz do tabeli bazy danych, ale jeśli istnieje wiersz z tym samym unikalnym kluczem, chcę zaktualizować wiersz.

Na przykład,

insert into table (id, name, age) values(1, "A", 19)

Załóżmy, że unikalnym kluczem jest id, a w mojej bazie danych znajduje się wiersz z id = 1. W takim przypadku chcę zaktualizować ten wiersz o te wartości. Normalnie daje to błąd. Jeśli użyję insert IGNORE to zignoruje błąd, ale nadal nie zaktualizuje.

Rozwiązanie

Użyj INSERT ... ON DUPLICATE KEY UPDATE.

QUERY:

INSERT INTO table (id, name, age) VALUES(1, "A", 19) ON DUPLICATE KEY UPDATE    
name="A", age=19
Komentarze (23)

Sprawdź REPLACE

http://dev.mysql.com/doc/refman/5.0/en/replace.html

REPLACE into table (id, name, age) values(1, "A", 19)
Komentarze (7)

Spróbuj tego:

INSERT INTO table (id, name, age) VALUES (1, 'A', 19) ON DUPLICATE KEY UPDATE id = id + 1;

Mam nadzieję, że to pomoże.

Komentarze (6)