2012-08-22 39 views
-1

我嘗試在數據庫中創建三個表,但它僅創建tbl_alarms,tbl_bookmarks和android_metadata。爲什麼我無法創建tbl_locationfrommap?創建sqlite的表在Android中

SQLiteDatabase db; 
    db = openOrCreateDatabase("Informations.db", SQLiteDatabase.CREATE_IF_NECESSARY, null); 
    db.setVersion(1); 
    db.setLocale(Locale.getDefault()); 
    db.setLockingEnabled(true); 
    Cursor cursor=db.rawQuery("select DISTINCT tbl_name from sqlite_master where tbl_name = 'tbl_alarms'", null); 

    if(cursor.getCount()==0) { 
     final String CREATE_TABLE_ALARMS = "CREATE TABLE tbl_alarms (" + 
               "alarmName TEXT PRIMARY KEY," + 
               " distance INTEGER, 
               ringtone TEXT, 
               vibrate INTEGER, 
               latitude INTEGER, 
               longitude INTEGER, 
               note TEXT, 
               alarmTime LONG, 
               alarmSnoozeTime LONG);"; 
     final String CREATE_TABLE_BOOKMARKS = "CREATE TABLE tbl_bookmarks (" + 
               "bookmarkName TEXT PRIMARY KEY," + 
               "latitude INTEGER, 
               longitude INTEGER);"; 
     final String CREATE_TABLE_MAPLOCATION = "CREATE TABLE tbl_locationfrommap (" + 
               "latitude INTEGER PRIMARY KEY"+ 
               " , longitude INTEGER PRIMARY KEY);"; 
     db.execSQL(CREATE_TABLE_ALARMS); 
     db.execSQL(CREATE_TABLE_BOOKMARKS); 
     db.execSQL(CREATE_TABLE_MAPLOCATION); 
    } 
+0

可以有每表僅1主鍵。 – AndroidGuy

回答

0

在表中只能指定一個主鍵

創建彼此id字段並使其主要從緯度和經度中刪除。

final String CREATE_TABLE_MAPLOCATION = "CREATE TABLE tbl_locationfrommap (" + "id INTEGER PRIMARY KEY"+ " latitude INTEGER"+" , longitude INTEGER);"; 
1

你只能有一個在表的主鍵。您在創建表格時添加了兩個主鍵。

我建議你到以下內容進行修改,

final String CREATE_TABLE_MAPLOCATION = "CREATE TABLE tbl_locationfrommap (" + " latitude INTEGER PRIMARY KEY"+" , longitude INTEGER UNIQUE);"; 
+0

謝謝奇拉格和路西法,它的作品! –

+0

你應該接受任何答案:) – Lucifer

1

基本的SQL問題。從

CREATE TABLE tbl_locationfrommap 更改SQL( 「+ 」緯度INTEGER PRIMARY KEY「 +」,經度INTEGER PRIMARY KEY)

CREATE TABLE tbl_locationfrommap( 「+ 」緯度INTEGER「 +」,經度INTEGER,PRIMARY KEY(緯度,經度))

當如果意圖創造一對主鍵

+0

的正是我所期待的。謝謝 –