我有一个连接两个表的视图。
如果针对该视图运行一次选择,可以得到10条结果。
如果我针对完全相同的where条件运行更新,则仅更新最后一个结果。
table A
id, a
table B
id, b
create view `view` as
select A.id, A.a, B.b
from A
join B
where A.id = B.id
SELECT * FROM view WHERE id = 1;
id, a, b
1, 'something', 100
1, 'something', 200
1, 'something', 300
UPDATE view SET b = 400 WHERE id = 1;
one row affected.
SELECT * FROM view WHERE id = 1;
id, a, b
1, 100
1, 200
1, 400
显然,在我从5.5升级到5.7(Ubuntu 14升级到16)之前,它奏效了。
SHOW CREATE VIEW `view`
CREATE ALGORITHM=UNDEFINED DEFINER=`db`@`localhost` SQL SECURITY DEFINER VIEW