SORU
3 EYLÜL 2010, Cuma


EKLE YOKSA BAŞKA GÜNCELLEME VAR MI?

Buldum bir kaç "olur" çözümler için klasik "Nasıl ekleme yeni kayıt veya güncelleme biri varsa o zaten var" ama veremem şimdi herhangi biri için iş SQLite.

Bir tablo aşağıdaki gibi tanımlanır

CREATE TABLE Book 
ID     INTEGER PRIMARY KEY AUTOINCREMENT,
Name   VARCHAR(60) UNIQUE,
TypeID INTEGER,
Level  INTEGER,
Seen   INTEGER

Yapmak istediğim şey benzersiz bir ada sahip bir kayıt eklemek. Eğer Adı zaten varsa, bu alanları değiştirmek istiyorum.

Biri bana nasıl yapacağımı söyle lütfen?

CEVAP
3 EYLÜL 2010, Cuma


http://sqlite.org/lang_conflict.html bakabilirsiniz.

Gibi bir şey istiyorum:

insert or replace into Book (ID, Name, TypeID, Level, Seen) values
((select ID from Book where Name = "SearchName"), "SearchName", ...);

Ekle listesinde herhangi bir alan varsa satır tabloda zaten varsa NULL olarak ayarlanır unutmayın. Bu ID sütun için alt neden: değiştirme davasında ifade NULL olarak ayarlayın ve yeni bir KİMLİK altında tutulacak.

Bu yaklaşım da değiştirilmesi durumunda satır eğer özel alan değerleri yalnız bırakmak istiyorsanız kullanılabilir ancak alan Ekle durumda NULL olarak ayarlayın.

Örneğin, varsayarak Seen rahat bırakmanı istiyorum:

insert or replace into Book (ID, Name, TypeID, Level, Seen) values (
   (select ID from Book where Name = "SearchName"),
   "SearchName",
    5,
    6,
    (select Seen from Book where Name = "SearchName"));

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • EmbarkToHeaven

    EmbarkToHeav

    3 EYLÜL 2007
  • lilstevie89

    lilstevie89

    25 Mart 2011
  • steeletraining

    steeletraini

    28 NİSAN 2010