0

我正在创建一个适用于模拟器但不适用于设备的表。我收到此错误消息:

Failure 1 (near "(": syntax error) on 0x2d69a8 when preparing 'CREATE TABLE request(requestidINTEGER PRIMARY KEY,longitudefromDECIMAL(10,5),lattitudefromDECIMAL(10,5),phoneINTEGER)

我正在创建这样的表:

 String CREATE_REQUEST_TABLE= "CREATE TABLE " + TABLE_REQUEST + "(" 
                    + KEY_REQUESTID + "INTEGER PRIMARY KEY," 
                    + KEY_LONGITUDEFROM + "DECIMAL(10,5)," 
                    + KEY_LATTITUDEFROM + "DECIMAL(10,5)," 
                    + KEY_TO + "TEXT," 
                    + KEY_DEPARTURETIME + "TIME," 
                    + KEY_ARRIVALTIME + "TIME," 
                    + KEY_DESCRIPTION + "TEXT," 
                    + KEY_PHONE + "INTEGER" + ")"; 
            db.execSQL(CREATE_REQUEST_TABLE); 
4

3 回答 3

2

您的请求中没有空格。在键前后添加空格:

String CREATE_REQUEST_TABLE= "CREATE TABLE " + TABLE_REQUEST + " (" 
                + KEY_REQUESTID + " INTEGER PRIMARY KEY, " 
                + KEY_LONGITUDEFROM + " DECIMAL(10,5), " 
                + KEY_LATTITUDEFROM + " DECIMAL(10,5), " 
                + KEY_TO + " TEXT, " 
                + KEY_DEPARTURETIME + " TIME, " 
                + KEY_ARRIVALTIME + " TIME, " 
                + KEY_DESCRIPTION + " TEXT, " 
                + KEY_PHONE + " INTEGER" + ")"; 
于 2012-05-15T21:06:01.877 回答
1

好吧,正如您在错误消息中看到的那样,KEY_REQUESTID + "INTEGER PRIMARY KEY,"变成requestidINTEGER PRIMARYwhich is not requestid INTEGER PRIMARY。基本上,列名和列类型之间没有空格,这使得它们(对于 SQLite)看起来是一个单一的标记。

于 2012-05-15T21:05:19.700 回答
1

尝试在您的 id 和“INTEGER PRIMARY KEY”之间使用空格

喜欢;

    KEY_REQUESTID + " INTEGER PRIMARY KEY,"
于 2012-05-15T21:08:55.917 回答