我尝试在数据库中创建三个表,但它只创建tbl_alarms,tbl_bookmarks和android_metadata。为什么我不能创建tbl_locationfrommap?
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)
表格中只能有一个 PRIMARY KEY 。您在创建表时添加了两个主键。
我建议你修改如下,
final String CREATE_TABLE_MAPLOCATION = "CREATE TABLE tbl_locationfrommap (" + " latitude INTEGER PRIMARY KEY"+" , longitude INTEGER UNIQUE );";
答案 1 :(得分:1)
基本的sql问题。 从
更改sqlCREATE TABLE tbl_locationfrommap(“+”纬度INTEGER PRIMARY KEY“+”,经度INTEGER PRIMARY KEY)
到
CREATE TABLE tbl_locationfrommap(“+”纬度INTEGER“+”,经度INTEGER,PRIMARY KEY(纬度,经度))
如果您打算创建配对主键
答案 2 :(得分:0)
在表格中,您只能指定一个主键。
创建另一个字段ID并将其设为主要ID并将其从纬度和经度中删除。
final String CREATE_TABLE_MAPLOCATION = "CREATE TABLE tbl_locationfrommap (" + "id INTEGER PRIMARY KEY"+ " latitude INTEGER"+" , longitude INTEGER );";