You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 15:57:03