SORU
26 NİSAN 2010, PAZARTESİ


SQLite UPSERT - KEY UPDATE YİNELENEN

MySQL şöyle bir şey var:

INSERT INTO visits (ip, hits)
VALUES ('127.0.0.1', 1)
ON DUPLICATE KEY UPDATE hits = hits   1;

Bilmek istediğim bu özellik SQLite yok bildiğim kadarıyla, eğer bir yolu varsa iki sorgu çalıştırmak zorunda kalmadan aynı etkiyi arşiv için. Ayrıca, eğer bu mümkün değilse, ne tercih edersiniz:

  1. SEÇİN (EKLEME veya GÜNCELLEME)ya
  2. GÜNCELLEME ( EKLEeğer GÜNCELLEME başarısız olursa)

CEVAP
27 NİSAN 2010, Salı


INSERT OR IGNORE INTO visits VALUES ($ip, 0);
UPDATE visits SET hits = hits   1 WHERE ip LIKE $ip;

Bu "" (ya da BİRİNCİL ANAHTAR) BENZERSİZ kısıtlama sütun. ıp gerektirir


EDİT: Başka bir mükemmel çözüm: http://stackoverflow.com/a/4330694/89771.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bobinire

    bobinire

    24 EYLÜL 2006
  • ICON

    ICON

    19 EKİM 2011
  • Jimmie Jones

    Jimmie Jones

    16 Kasım 2007