我正在使用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";```
最佳答案
将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)''');
关于flutter - 如何在Flutter中使用SQFLite创建多个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61286189/