【发布时间】:2015-10-08 14:35:08
【问题描述】:
我创建了一个表,其中有一列“_id”,它是一个带有 AUTOINCREMENT 的 INTEGER 类型。现在我知道 AUTOINCREMENT 上的列必须是 PRIMARY KEY ,如果我没记错的话,这是语法。但我想要复合键,所以我不将“_id”声明为(_id INTEGER PRIMARY KEY AUTOINCREMENT)在列定义中使用 PRIMARY KEY 定义,而是将其声明为(_id INTEGER AUTOINCREMENT, username TEXT UNIQUE, password TEXT, name TEXT, phonenumber TEXT, address TEXT, fine INTEGER, bookid INTEGER, PRIMARY KEY (_id, username, password))
但它给出了运行时错误。当我们有一个 AUTOINCREMENT 字段时,是否必须在列定义本身中声明 PRIMARY KEY?
这是错误
07-18 12:47:22.916: E/AndroidRuntime(3423): Caused by: android.database.sqlite.SQLiteException: near "AUTOINCREMENT": syntax error (code 1): , while compiling: CREATE TABLE userdetails (_id INTEGER AUTOINCREMENT, username TEXT UNIQUE, password TEXT, name TEXT, phonenumber TEXT, address TEXT, fine INTEGER, bookid INTEGER, PRIMARY KEY (_id, username, password));
【问题讨论】:
标签: sqlite primary-key auto-increment composite-key