【发布时间】:2018-08-08 07:23:37
【问题描述】:
我有一个 mysql 视图,它在 FROM 子句中有子查询。此视图是可更新的。我尝试更新单个表,它工作正常。但我无法插入该表。它说:
错误代码:1471。INSERT 的目标表 action_view 是 不可插入
mysq 视图:
CREATE OR REPLACE
VIEW `action_view` AS
SELECT
`ca`.`id` AS `id`,
`cah`.`title` AS `title`,
`ca`.`idCareActionHead` AS `idCareActionHead`,
`ca`.`idPeople` AS `idPeople`,
`ca`.`assignedTo` AS `assignedTo`,
`ca`.`dueDate` AS `dueDate`,
`note`.idCareAction AS `idCareAction`
FROM
`care_action` `ca`
JOIN `care_action_head` `cah`
JOIN `people` `p`
JOIN (SELECT
`cn`.`idCareAction` AS `idCareAction`
FROM `care_note` `cn`) `note`
WHERE
`ca`.`idCareActionHead` = `cah`.`id`
AND (`ca`.`idPeople` = `p`.`id`)
AND (`note`.`idCareAction` = `ca`.`id`)
更新工作正常的查询:
update action_view set idCareActionHead = 1 where action_view.id =25;
插入给出上述错误的查询:
insert into action_view (idCareActionHead, idPeople) values (12, 4);
我参考了最新的mysql文档
https://dev.mysql.com/doc/refman/5.7/en/view-updatability.html1 在SELECT 语句中谈论子查询,但在FROM 子句中没有提及子查询。
我的问题是,是否可以在 mysql 的 FROM 子句中插入具有子查询的视图,或者我在这里做错了什么?
【问题讨论】:
标签: mysql views insert-into