我正在使用这个简单的代码在我的数据库中创建一个表User。
@Override
public void onCreate(SQLiteDatabase db) {
String create_t_user =
"CREATE TABLE IF NOT EXISTS user ("+
"ID int(10) NOT NULL AUTO_INCREMENT,"+
"username varchar(20) NOT NULL,"+
"password varchar(20) NOT NULL,"+
"connected binary(1) NOT NULL,"+
"PRIMARY KEY (ID));";
db.execSQL(create_t_user);
// ...
当我尝试运行该代码时,logcat向我显示错误。它说
" 04-28 02:49:57.146:E / AndroidRuntime(10649): android.database.sqlite.SQLiteException:near" AUTO_INCREMENT":语法 错误:CREATE TABLE用户(ID int(10)NOT NULL AUTO_INCREMENT,用户名 varchar(20)NOT NULL,密码varchar(20)NOT NULL,连接二进制(1) NOT NULL,PRIMARY KEY(ID))"
答案 0 :(得分:0)
AUTO_INCREMENT
应为AUTOINCREMENT
答案 1 :(得分:0)
使用自动增量算法生成rowid的rowid列规范的正确语法是
INTEGER PRIMARY KEY AUTOINCREMENT
请注意PRIMARY KEY
也暗示NOT NULL
。
因此,将表创建更改为
String create_t_user =
"CREATE TABLE IF NOT EXISTS user ("+
"ID INTEGER PRIMARY KEY AUTOINCREMENT,"+
"username varchar(20) NOT NULL,"+
"password varchar(20) NOT NULL,"+
"connected binary(1) NOT NULL);";