我用这种形式写了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);但是,当我想运行这段代码时,我会收到以下错误消息:
<column definition name> or <table constraint>expected,got 'current_date'我怎样才能解决这个问题?
谢谢。
发布于 2019-01-05 07:03:52
SQLite不允许您用保留名称命名列。
这里您可以找到完整的列表
我怎样才能解决这个问题?
将列名“current_date”更改为其他内容
如何使用键盘作为名字?
如果您想使用关键字作为名称,您需要引用它。在SQLite中有四种引用关键字的方法:
keyword --一个包含在重音(ASCII代码96)中的关键字是一个标识符。这不是标准SQL。这种引用机制由MySQL使用,并包含在SQLite中以实现兼容性。发布于 2019-01-05 07:12:49
我认为'current_date‘是一个SQL关键字。只需将其更改为任何其他名称,如'present_date‘,你就可以走了。
https://stackoverflow.com/questions/54049714
复制相似问题