2012-08-22 38 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

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