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

Flutter Sqflite创建表报错:AUTOINCREMENT语法错误求助

SQLite AUTOINCREMENT 语法错误修复

问题根源

你的建表语句违反了SQLite的语法规则:AUTOINCREMENT必须放在PRIMARY KEY之后,且INTEGER PRIMARY KEY本身已隐含非空约束,无需额外声明NOT NULL。

修正后的建表代码

修改_onCreate方法中的SQL语句:

_onCreate(Database db, int version) async {
  await db.execute('''
  CREATE TABLE notlar(
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    onenote TEXT NOT NULL
  )
  ''');
  print("created database and table");
}

补充说明

  • 若无需严格保证ID不被复用,仅需自增主键,可简化为id INTEGER PRIMARY KEY,SQLite会自动为该字段分配递增数值。
  • 由于你设置了数据库版本为2,修改后重启应用会触发onUpgrade方法。当前onUpgrade仅含打印逻辑,若需保留旧数据,建议在该方法中添加表结构迁移代码(如ALTER TABLE);若无需保留数据,可直接删除原表后重建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 07:21:23