MOH*_*S3N 0 sqlite android android-sqlite
我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);
Run Code Online (Sandbox Code Playgroud)
但是,当我想运行此代码时,我收到此错误消息:
<column definition name> or <table constraint>expected,got 'current_date'
Run Code Online (Sandbox Code Playgroud)
我该如何修复这个错误?
Thankes.
SQLite不允许您为保留名称的列命名.
在这里您可以找到完整列表
我该如何修复这个错误?
将列名'current_date'更改为其他名称
如何使用keywoard作为名称?
如果要将关键字用作名称,则需要引用它.在SQLite中有四种引用关键字的方法:
'keyword'单引号中的关键字是字符串文字.
"keyword"双引号中的关键字是标识符.
[keyword]方括号中的关键字是标识符.这不是标准的SQL.此引用机制由MS Access和SQL Server使用,并包含在SQLite中以实现兼容性.
keyword 用严重重音符号(ASCII代码96)括起来的关键字是标识符.这不是标准的SQL.这种引用机制由MySQL使用,并包含在SQLite中以实现兼容性.