我以这种形式写了sqlite
句子:
String SQL_CREATE_BACKUP ="CREATE TABLE " +smsEntry.BACKUP +"("
+smsEntry._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+smsEntry.BACKUP_LAST_MODE +" INTEGER NOT NULL,"
+smsEntry.BACKUP_CURRENT_MODE +" INTEGER NOT NULL,"
+smsEntry.BACKUP_LAST_TYPE +" INTEGER NOT NULL,"
+smsEntry.BACKUP_CURRENT_TYPE +" INTEGER NOT NULL,"
+smsEntry.BACKUP_MILLI_DATE +" LONG NOT NULL,"
+smsEntry.BACKUP_CURRENT_DATE + " TEXT NOT NULL);";
db.execSQL(SQL_CREATE_BACKUP);
但是当我想运行此代码时,会收到以下错误消息:
{{2} }如何解决此错误?
谢谢。
答案 0 :(得分:5)
SQLite不允许您使用保留名称来命名列。
Here您可以找到完整的列表
如何解决此错误?
将列名“ current_date”更改为其他名称
如何使用键盘密码作为名称?
如果要使用关键字作为名称,则需要引用它。在SQLite中有四种引用关键字的方法:
“关键字”单引号中的关键字是字符串文字。
“关键字”用双引号引起来的关键字是标识符。
[关键字]用方括号括起来的关键字是一个标识符。这不是标准的SQL。这种引用机制由MS Access和SQL Server使用,并且包含在SQLite中以实现兼容性。
keyword
用重音括起来的关键字(ASCII码96)是一个标识符。这不是标准的SQL。这种引用机制由MySQL使用,并且包含在SQLite中以实现兼容性。
答案 1 :(得分:0)
我认为'current_date'是一个SQL关键字。只需将其更改为任何其他名称,例如'present_date',您就可以使用了。