针对视图更新仅更新最后一行(从5.7开始)

时间:2019-05-21 09:14:33

标签: mysql

我有一个连接两个表的视图。
如果针对该视图运行一次选择,可以得到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

0 个答案:

没有答案