SQLite, как обновить столбец, который относится к многостолбцовому индексу - PullRequest
0 голосов
/ 13 октября 2011

Скажем, у меня есть индекс (id, name) и я хочу выполнить запрос вроде:

update <table> set name='new name' where name='old name'

Тогда я получил сообщение об ошибке:

Query Error: columns id, name are not unique Unable to fetch row.

Что это за ошибка? И как я могу обновить этот столбец без ошибки?

Ответы [ 3 ]

1 голос
/ 13 октября 2011

Было бы полезно, если бы вы могли показать содержимое <table>, по крайней мере, все строки с name = 'new name' или name = 'old name'.

Однако наиболее логичным предположением является то, что в вашей таблице уже есть две строки с одинаковым id, одна из которых имеет значение 'new name', а другая имеет значение 'old name' в поле name , Если это так, и вы запустите этот UPDATE, то результаты будут нарушать любой индекс PRIMARY KEY или UNIQUE для этой комбинации полей.

1 голос
/ 14 июля 2014

Сообщение об ошибке трудно понять.

Более подробно можно сказать:

Query Error: columns id, name would be not unique after the update operation
1 голос
/ 13 октября 2011

Похоже, что в sqlite предложение WHERE должно возвращать одну уникальную строку.

Измените ваш SQL на:

update <table> set name='new name' where id='id' and name='old name'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...