数据库sqlite无法运行,

时间:2014-04-28 01:56:21

标签: android sqlite

我正在使用这个简单的代码在我的数据库中创建一个表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))"

2 个答案:

答案 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);";