dart - Flutter DatabaseException(唯一约束失败)
问题描述
我正在尝试将一些数据插入 sqflite 表,但执行插入查询时出错
await db.execute(
'CREATE TABLE $catrgoryTable($category_id INTEGER PRIMARY KEY UNIQUE , $colDeviceTypeId INTEGER, '
'$room_id INTEGER)');
print('category created!');
这是错误
SqfliteDatabaseException (DatabaseException(UNIQUE constraint failed: category_Table.category_id (code 1555)) sql 'INSERT INTO category_Table (category_id, device_type_id, room_id) VALUES (?, ?, ?)' args [1, 1, 1]})
谢谢你的帮助:)
解决方案
该表category_Table
上有一个唯一约束字段,错误表明您尝试输入一个category_id
已经存在的值,这违反了该字段的主键唯一性约束。给定 ID 值只能存在一行。因此,如果您尝试插入一行,请确保您category_id
具有唯一值,或者如果您不关心自己生成 id,则可以将AUTOINCREMENT
设置添加到category_id
列定义中。这样它将自动填充,并且每一行都有自己的唯一值。
推荐阅读
- mysql - 将新的 NOT NULL 列添加到包含数据的现有表
- android - 如何将 liveData 添加到 MPandroidchart
- azure-application-insights - 通过 ApplicationInsights ITelemetryInitializer 访问时释放 HttpContext.Request.Body
- node.js - 对话流自定义有效负载 json
- python - PEP8 清理 - 访问一个类的受保护成员 _last_executed
- html - 查找 HTML 跨度元素
- javascript - 如何在每个子元素周围正确添加一个元素(之前和之后)
- uwp - uwp和c#中的反向地理编码
- reactjs - 你如何做一个带有特殊字符的自定义过滤器?
- sql - 如何计算 SQL 数据但也有可能存在或不存在的字段?