SORU
30 Mart 2010, Salı


Android SQLite kullanarak yabancı anahtar kısıtlamaları? on Delete cascade

İki tablo var: izler ve yol işaretleri, bir parça birçok yol işaretleri olabilir, ama bir geçiş noktası sadece 1 parça atanır.

Bu şekilde bir tablo sütun "" track_İD bir parça yapıldıktan sonra, ancak bu sütun Kur Yabancı Anahtar kısıtlamaları var. trackidfk aradım puan

Atanan yol işaretlerini silmek istiyorum bir parça sildiğimde, bu mümkün mü?. Tetikleyiciler kullanarak okumuştum ama Android desteklenen olduklarını sanmıyorum.

Yol işaretleri tablo oluşturmak için:

public void onCreate(SQLiteDatabase db) {
    db.execSQL( "CREATE TABLE "   TABLE_NAME 
                  " (" 
                  _ID           " INTEGER PRIMARY KEY AUTOINCREMENT, " 
                  LONGITUDE     " INTEGER," 
                  LATITUDE      " INTEGER," 
                  TIME          " INTEGER,"
                  TRACK_ID_FK   " INTEGER"
                  " );"
              );

    ...
}

CEVAP
16 Temmuz 2010, Cuma


On delete cascade ile yabancı anahtar kısıtlamaları desteklenmektedir, ancak onları etkinleştirmeniz gerekir.
Ben sadece benim için şunları eklediSQLOpenHelperhile yapmak gibi görünüyor.,

@Override
public void onOpen(SQLiteDatabase db) {
    super.onOpen(db);
    if (!db.isReadOnly()) {
        // Enable foreign key constraints
        db.execSQL("PRAGMA foreign_keys=ON;");
    }
}

Aşağıdaki gibi referans köşemi ilan ettim.

mailbox_id INTEGER REFERENCES mailboxes ON DELETE CASCADE

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DudeFromUkraine

    DudeFromUkra

    7 Ocak 2008
  • spyib

    spyib

    9 Ocak 2007
  • TheJoeycool2010

    TheJoeycool2

    12 Temmuz 2010