![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witjacie!
Problem jest dość prosty. Wykonuje zapytanie "INSERT INTO x ON DUPLICATE KEY UPDATE...". Tabela ma klucz unique na pola A oraz B. Kluczem primary z auto increment jest C. Po wykonaniu zapytania chciałbym w jakiś sposób dowiedzieć się jakie wartości C miały zmodyfikowane rekordy (czyli te które były już w tabeli i zostały zmodyfikowane a nie dodane). Brzmi jak przekombinowana idea ale taką nie jest - schemat wygląda tak, że użytkownik wyszukuje coś, dostaje wyniki z lokalnej bazy a dodatkowo są "doładowywane" wyniki z zewnętrznego serwera. Aby nie pytać go znowu o to samo dodaje te wyniki do lokalnej bazy jednakże dane są niepełne - crontab co 24h dodatkowo przelicza pewne wartości i dodaje dodatkowe informacje w drugiej tabeli kluczownej po owym C (IMG:style_emoticons/default/smile.gif) Uff, ale się rozpisałem - mam nadzieję, że ktoś dobroduszny przeczyta i podpowie (IMG:style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 282 Pomógł: 89 Dołączył: 12.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Sam ID zwraca nam mysql_insert_id(), tylko trzeba było najpierw wiedzieć czy było wstawienie, czy update, bo ta funkcja zwraca id w obu przypadkach.
Czyli przykładowy kod:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 13:27 |