Проблема при обновлении таблицы в Android - PullRequest
0 голосов
/ 28 сентября 2011

Я создал таблицу в базе данных, в которой есть такие данные: enter image description here

Теперь я написал запрос, который обновляет поле контакта путем объединения имен и полей электронной почты: UPDATE MyContacts SET contact=(SELECT name||'--'||email FROM MyContacts);

Здесь проблема заключается в том, что после выполнения запроса таблица выглядит следующим образом:

enter image description here

Почему это происходит так?В оракуле я никогда не сталкивался с этой проблемой.Пожалуйста, помогите мне.Спасибо

1 Ответ

2 голосов
/ 28 сентября 2011

В данный момент вы не указываете правильную строку для получения значений.Попробуйте что-то вроде этого:

UPDATE MyContacts SET contact = name||'--'||email;

РЕДАКТИРОВАТЬ: Рад, что это сработало.Ваша первая проблема заключалась в том, что ваш подвыбор использует оператор SELECT без предложения WHERE (SELECT name||'--'||email FROM MyContacts вернет 3 строки).Одним из возможных решений было бы для SQLite выдать ошибку и сказать Вы пытались установить столбец в результате выражения, которое возвращает более 1 строки : я видел это с MySQL и SQL Server,Однако в этом случае SQLite использует только первое возвращенное значение.Однако затем появляется вторая ошибка: поскольку вы не сужаете свой оператор UPDATE с помощью предложения WHERE, он использует это первое значение, возвращаемое для обновления КАЖДОЙ отдельной строки, что вы и видите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...