2
Может кто-нибудь объяснить мне это ... :) (с использованием MySQL 5.6.13)UPDATE, без подзапроса бросает ошибку: подзапрос возвращает более 1 строки
UPDATE offer SET cosid=1 WHERE id=40;
Query OK, 1 row affected (0.07 sec)
Rows matched: 1 Changed: 1 Warnings: 0
UPDATE offer SET cosid=4 WHERE id=40;
ERROR 1242 (21000): Subquery returns more than 1 row
UPDATE offer SET cosid=5 WHERE id=40;
Query OK, 1 row affected (0.04 sec)
Rows matched: 1 Changed: 1 Warnings: 0
Каждый достоверный показатель принимается за исключением четырех :(
Это предложение таблица:
CREATE TABLE offer (
id bigint(20) NOT NULL AUTO_INCREMENT,
authorid bigint(20) NOT NULL,
offered_designid bigint(20) NOT NULL,
cdid bigint(20),
cosid bigint(20) NOT NULL,
PRIMARY KEY (id),
UNIQUE INDEX (id)) ENGINE=InnoDB;
Любое предположение, что может быть неправильно
EDITED: Это ток соз таблица:
SELECT * FROM cos;
+----+-------------+
| id | offer_state |
+----+-------------+
| 1 | active |
| 5 | cancelled |
| 3 | inactive |
| 4 | realized |
| 2 | waiting |
+----+-------------+
5 строк в наборе (0,00 сек)
Я думаю, ошибка может привести к этому. Или поврежденные индексы (возможно.) Интересно, почему вы указали как первичный, так и уникальный индекс в одном столбце (не то, чтобы он создавал это ошибочное поведение, это не имеет значения.) –
Еще одна вероятная причина - триггеры. У вас есть триггер UPDATE на столе? –
Большое спасибо ypercube появился триггер по обновлению предложения, который изменил состояния. спасибо – Michal