假设我有一个索引(id,name),并希望执行如下查询:
update <table> set name='new name' where name='old name'
然后我得到了错误:
Query Error: columns id, name are not unique Unable to fetch row.
那是什么错误?如何在不出错的情况下更新该列?
答案 0 :(得分:1)
似乎在sqlite中,WHERE
子句必须返回一个唯一的行。
将您的SQL更改为:
update <table> set name='new name' where id='id' and name='old name'
答案 1 :(得分:1)
如果您可以显示<table>
的内容,至少包含name = 'new name'
或name = 'old name'
的所有行,将会有所帮助。
但是,最合乎逻辑的假设是,您的表中已存在两行具有相同id
的行,其中一行的值为'new name'
,另一行的值为'old name'
在name
字段中。如果这是真的,并且您运行此UPDATE
,则结果将违反该字段组合上的任何PRIMARY KEY
或UNIQUE
索引。
答案 2 :(得分:1)
错误信息很难理解。
更详细地说,它可以说:
Query Error: columns id, name would be not unique after the update operation