我正在使用sqflite
作为数据库。当我尝试创建一个表时,它可以完美地工作。但是,当我添加一些额外的SQL
代码来创建额外的表时,会出现此错误:
error DatabaseException(near ",": syntax error (code 1 SQLITE_ERROR): , while compiling: CREATE TABLE deletednotes(id INTEGER PRIMARY, title TEXT, description TEXT, priority INTEGER, date int)) sql 'CREATE TABLE deletednotes(id INTEGER PRIMARY, title TEXT, description TEXT, priority INTEGER, date int)' args []} during open, closing...
如何正确创建多个表?
这是我的查询:
void _createDB(Database db, int version) async {
await db.execute('''CREATE TABLE $notetable(
$COL_ID INTEGER PRIMARY KEY AUTOINCREMENT, $COL_TITLE TEXT, $COL_DESCRIPTION TEXT, $COL_PRIORITY INTEGER, $COL_DATE int)''');
await db.execute(
'''CREATE TABLE $archievedtable($COL_ID INTEGER PRIMARY KEY, $COL_TITLE TEXT, $COL_DESCRIPTION TEXT, $COL_PRIORITY INTEGER, $COL_DATE int)''');
await db.execute(
'''CREATE TABLE $deletedtable($COL_ID INTEGER PRIMARY, $COL_TITLE TEXT, $COL_DESCRIPTION TEXT, $COL_PRIORITY INTEGER, $COL_DATE int)''');
}
也许会有语法错误,有什么想法吗?
static const COL_TITLE = "title";
static const COL_DESCRIPTION = "description";
static const COL_PRIORITY = "priority";
static const COL_DATE = "date";
String notetable = "notes";
String deletedtable = "deletednotes";
String archievedtable = "archievednotes";```
答案 0 :(得分:1)
在SQL代码中用int
替换INTEGER
并更改以下内容
在声明主键之后添加关键字KEY
的行:
await db.execute(
'''CREATE TABLE $deletedtable($COL_ID INTEGER PRIMARY, $COL_TITLE TEXT, $COL_DESCRIPTION TEXT, $COL_PRIORITY INTEGER, $COL_DATE int)''');
。
收件人:
await db.execute(
'''CREATE TABLE $deletedtable($COL_ID INTEGER PRIMARY KEY, $COL_TITLE TEXT, $COL_DESCRIPTION TEXT, $COL_PRIORITY INTEGER, $COL_DATE int)''');