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
相关产品推荐
相关产品推荐

