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

  • CMTelly

    CMTelly

    2 Mayıs 2007
  • SuppressedStorm

    SuppressedSt

    11 AĞUSTOS 2013
  • wwjoshdu

    wwjoshdu

    18 ŞUBAT 2011