mycode的
final String createtabBook="CREATE TABLE IF NOT EXISTS BookMark(lid INTEGER AUTOINCREMENT, bookdir TEXT , lastaddress TEXT,addresname TEXT PRIMARY KEY(bookdir,lastaddress));";
db.execSQL(createtabBook);
logcat的:
03-05 18:29:31.708: I/System.out(17160): android.database.sqlite.SQLiteException: near "AUTOINCREMENT": syntax error: , while compiling: CREATE TABLE IF NOT EXISTS BookMark(lid INTEGER AUTOINCREMENT, bookpath TEXT , lastchapter TEXT, PRIMARY KEY(bookpath,lastchapter));
我只想创建一个带有复合主键的表,这样它就是bookdir和lastaddress的组合,我也希望将盖子设置为自动增量。
答案 0 :(得分:4)
要获取任何列自动增量的值,您需要编写它或将其声明为主键。
在SQLite中,声明 INTEGER PRIMARY KEY的列将自动增量。
<强>编辑:强>
由于您无法在表格中定义多个PRIMARY KEY
,因此您必须将bookdir,lastaddress
列设为UNIQUE
,并将lid
列定义为PRIMARY KEY
如下所示:
试试如下:
final String createtabBook="CREATE TABLE IF NOT EXISTS BookMark(lid INTEGER PRIMARY KEY AUTOINCREMENT,
bookdir TEXT , lastaddress TEXT,addresname TEXT, UNIQUE(bookdir,lastaddress));";
在查询中的","
列后面添加addresname TEXT,
。