Flutter使用Sqflite创建表时报near ")"语法错误怎么解决?
问题原因
SQLite的CREATE TABLE语法不允许最后一列的定义末尾携带逗号,你给出的建表SQL中,protein INTEGER NOT NULL后面多了多余的逗号,直接导致语法解析错误。
修复方案
删除你建表语句中最后一列定义后的多余逗号即可,修正后的代码如下:
Future _onCreate(Database db, int version) async{ final idType = 'INTEGER PRIMARY KEY'; final intType = 'INTEGER NOT NULL'; await db.execute( ''' CREATE TABLE $_tableName( $columnId $idType, $columnCalories $intType, $columnCarbs $intType, $columnFat $intType, $columnProtein $intType ) ''' ); }
额外注意
如果此前你已经运行过错的代码生成了数据库文件,修改代码后需要卸载应用或者清除应用本地存储,让数据库重新触发onCreate生命周期执行新的建表语句,否则旧的错误数据库依然会留存导致报错。
内容的提问来源于stack exchange,提问作者Dalon
相关产品推荐
相关产品推荐

