SQLite - EKLE veya DEĞİŞTİR *UPSERT*
http://en.wikipedia.org/wiki/Upsert
Insert Update stored proc on SQL Server
Düşünce değil bu daha zekice bir yolunu SQLite bunu yapmak için var mı?
Eğer kaydı varsa, üç, dört sütun güncellemek istiyorum aslında, Varsa yoksa değil dördüncü sütun (NULL) varsayılan değeri ile kayıt EKLEMEK istiyorum.
KİMLİĞİ sadece UPSERT için bir rekor olacak yani birincil anahtar.
(Sırayla eğer GÜNCELLEME yapmam gerekiyorsa ölçüm m için SEÇİN veya açıkça EKLE) yükünü önlemek için çalışıyorum
Öneriniz var mı?
CEVAP
3 sütun varsayarak tabloda ID, AD, ROL..
KÖTÜ:Bu ekleme veya KİMLİĞİ için yeni değerleri ile tüm sütunları değiştir=1:
INSERT OR REPLACE INTO Employee (id, name, role)
VALUES (1, 'John Foo', 'CEO');
KÖTÜ:Bu ekleme veya sütunları... ADI sütun NULL olarak ayarlanır veya varsayılan değeri 2 yerini alacak:
INSERT OR REPLACE INTO Employee (id, role)
VALUES (1, 'code monkey');
İYİ:Bu sütun 2 güncellenir. =1 var ID, ADI etkilenmeyecektir. =1 yok KİMLİĞİ, adı varsayılan (BOŞ) olacak.
INSERT OR REPLACE INTO Employee (id, role, name)
VALUES ( 1,
'code monkey',
(SELECT name FROM Employee WHERE id = 1)
);
Bu sütun 2 güncellenir. =1 mevcut KİMLİĞİ, ROLÜ etkilenmeyecektir. İD=1 yok, rolü olacaktır 'Benchwarmer' varsayılan değer yerine.
INSERT OR REPLACE INTO Employee (id, name, role)
VALUES ( 1,
'Susan Bar',
COALESCE((SELECT role FROM Employee WHERE id = 1), 'Benchwarmer')
);
Android SQLite: Ekle/değiştir yöntemle...
Visual studio bulun ve satır başı, yen...
Var "Değiştir Veya Ekle" için...
Android parça sayısı: gizlemek kullanm...
Dinamik olarak yüzde CSS ile daha açık...