Android SQLite创建表语法错误致应用崩溃问题求助
问题排查与解决:SQLite创建表语句语法错误
从报错信息和代码来看,存在两处明显的SQL语法错误:
错误1:CREATE TABLE关键字与表名之间缺少空格
报错中的CREATE TABLENot是因为代码里"CREATE TABLE"字符串末尾没有空格,直接拼接TABLE_NAME后,SQL解析器会把TABLENot识别为一个无效的关键字,导致语法错误。
错误2:最后一个字段名与类型之间缺少空格
语句末尾的silinmisTEXT是因为SILINMIS_FIELD与"TEXT)"之间没有空格,字段名和数据类型连在一起,不符合SQL语法规范。
修正后的代码
@Override public void onCreate(SQLiteDatabase sqLiteDatabase) { StringBuilder sql; sql = new StringBuilder() .append("CREATE TABLE ") // 增加空格分隔CREATE TABLE与表名 .append(TABLE_NAME) .append("(") .append(COUNTER) .append(" INTEGER PRIMARY KEY AUTOINCREMENT, ") .append(ID_FIELD) .append(" INT, ") // 确保字段后有逗号分隔下一个字段 .append(BASLIK_FIELD) .append(" TEXT, ") .append(ACIKLAMA_FIELD) .append(" TEXT, ") .append(SILINMIS_FIELD) .append(" TEXT)"); // 增加空格分隔字段名与TEXT类型 sqLiteDatabase.execSQL(sql.toString()); }
另外需要确认TABLE_NAME、COUNTER、ID_FIELD等常量的定义是否正确,确保没有额外的空格或特殊字符。
内容的提问来源于stack exchange,提问作者Kregai
相关产品推荐
相关产品推荐

