ďťż

[SQL] Składnia REPLACE Czy nie zawiera haków?

       

Podstrony


telcocafe

Ostatnio zacząłem używać składni REPLACE. Obsługuje ją zarówno MySQL jak i SQLite.
http://www.mysql.org...en/replace.html

Teraz myślę, aby w wielu miejscach stosować REPLACE zamiast INSERT oraz UPDATE - np. w modułach edycji artów, plików, bannerów, itd. Czy warto to zrobić? Zaleta jest też taka, że gdy ktoś usunie pozycję, a kto inny ją edytuje, znajdzie się w bazie danych z powrotem.

Mam tylko 1 wątpliwość - czy to polecenie nie bywa zawodne. Obawiam się, że SQLite nie skojarzy, że gdy się np. dla pola ID wprowadzi wartość 0 lub "", trzeba je uzupełnić automatycznie.
Użytkownik Ferrari edytował ten post 22 lipiec 2007, 22:39


jedno pytanie czy chcesz te rekordy zamienić czy uaktualnić? imho nie do końca rozumiesz sensu korzystania z replace

Powiedzmy, że edytujemy sondę. Do tego celu piszemy zapytanie UPDATE. Potem chcemy dodać nową, a do tego piszemy kolejne zapytanie - INSERT. :) Można je zastąpić jednym - REPLACE. Czy to dobre wyjście? Choć i tak trzeba będzie z powodu SQLite nie wysyłać wartości pola ID, gdy dodajemy nowe pole (chyba, że istnieje wspólna komenda dla MySQL i SQLite na wstawienie wartości automatycznie). Jednak zalety - mniej kodu + rekord zostanie dodany ponownie, gdy ktoś go właśnie usunął. Nie wiem, jak z szybkością tego polecenia.

W niektórych przypadkach rzeczywiście osobne UPDATE będzie lepsze, gdyż nie wszystkie pola trzeba zmienić.
Użytkownik Ferrari edytował ten post 23 lipiec 2007, 07:29
ja bym korzystał z UPDATE, jak dla mnie nadawanie unikalności na klucz główny z autoinkrementacją nie ma sensu :-) , a nadanie unikalności innemu polu mija sie z celem :-)




PRIMARY KEY or a UNIQUE index Więc nie trzeba wcale nadawać unikalności. :) Na razie zostanę przy INSERT i UPDATE, choć na próbę użyłem REPLACE w module sondy (zapis odpowiedzi). Ostateczną decyzję podejmę przy wdrożeniu i testowaniu SQLite. :)

by bug :) ale i tak nie uzylbym tego do modyfikacji o jakich piszesz :)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.