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

如何修复Flutter sqflite建表时DatabaseException near ")"语法错误

错误成因
  • 你的建表SQL存在语法错误:SQLite的CREATE TABLE语句中,字段列表的最后一项不允许携带尾随逗号。你在最后一个字段$createdTime TEXT NOT NULL后面多加了一个逗号,SQL解析到右括号前的逗号时无法识别,就会抛出near ")"的语法错误。
  • 代码中建表语句插入的多余空行虽然不会直接引发报错,但会干扰语法问题的排查效率。
修复方法
  1. 修改_onCreate方法中的建表SQL,删除最后一个字段后面的逗号,同时删掉多余的空行,修改后的代码如下:
Future _onCreate(Database db, int version) async {
  await db.execute('''
    CREATE TABLE $table (
      $columnId INTEGER PRIMARY KEY,
      $columnName TEXT NOT NULL,
      $address TEXT NOT NULL,
      $comments TEXT NOT NULL,
      $sigURL TEXT NOT NULL,
      $selfpicURL TEXT NOT NULL,
      $columnAge INT NOT NULL,
      $createdTime TEXT NOT NULL
    )
  ''');
}
  1. 触发数据库重新初始化:
    • 测试阶段可以直接卸载设备上的原有应用后重新运行,旧数据库文件会被清除,首次启动会自动调用onCreate创建正确结构的表。
    • 正式版本可以将_databaseVersion的数值加1,同时补充onUpgrade回调逻辑处理表结构的版本更新。

内容的提问来源于stack exchange,提问作者Grace

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:39:03