使用限制原因SQLite更新查询

使用限制原因SQLite更新查询,sqlite,Sqlite,我在SQLite中有一个名为TBL_data的表 我有两个字段id和name 所有id都设置为-1 我想更新第一次出现的记录 为此,我使用了 更新TBL_数据集名称='XYZ',其中id=-1限制1 它显示错误,还有其他方法吗?只有当您使用SQLite\u ENABLE\u UPDATE\u DELETE\u LIMIT编译SQLite时,查询才会工作 如果不是这样,则必须使用表的某个唯一键来确定行: UPDATE tbl_data SET ... WHERE rowid IN (SELECT

我在SQLite中有一个名为TBL_data的表

我有两个字段id和name

所有id都设置为-1

我想更新第一次出现的记录

为此,我使用了

更新TBL_数据集名称='XYZ',其中id=-1限制1


它显示错误,还有其他方法吗?

只有当您使用
SQLite\u ENABLE\u UPDATE\u DELETE\u LIMIT
编译SQLite时,查询才会工作

如果不是这样,则必须使用表的某个唯一键来确定行:

UPDATE tbl_data
SET ...
WHERE rowid IN (SELECT rowid
                FROM tbl_data
                WHERE ...
                ORDER BY ...
                LIMIT 1)

如果id不是唯一的,那么它的意义是什么…试着给出一个,而且where子句在您的情况下是无用的。您得到的错误是什么?这只是临时记录,它将标识id为-1的新记录所有其他记录都包含id为正值,更好的模式设计可能是使用一个单独的表来指示哪些是临时的,或者使用一个布尔列来指示哪些是临时的。重复使用IDs是不好的。糟糕的数据库设计将导致糟糕的应用程序性能。这将导致糟糕的用户体验。