可更新的mysql视图
我能就如何更新视图提供建议吗?这是我创建的视图。。但是由于存储函数,它是不可更新的,对吗?联接查询是否也不可更新?还有if函数?请帮帮我…对不起我的英语可更新的mysql视图,mysql,workbench,Mysql,Workbench,我能就如何更新视图提供建议吗?这是我创建的视图。。但是由于存储函数,它是不可更新的,对吗?联接查询是否也不可更新?还有if函数?请帮帮我…对不起我的英语 CREATE ALGORITHM = UNDEFINED DEFINER = `root`@`localhost` SQL SECURITY DEFINER VIEW `view_attendance_dgv` AS select `tbl_stockholders`.`user_
CREATE
ALGORITHM = UNDEFINED
DEFINER = `root`@`localhost`
SQL SECURITY DEFINER
VIEW `view_attendance_dgv` AS
select
`tbl_stockholders`.`user_id` AS `user_id`,
`tbl_images`.`image_template` AS `Image Template`,
finger_name(`tbl_fingerprints`.`finger`) AS `Enrolled Finger`,
`tbl_users`.`last_name` AS `Last Name`,
`tbl_users`.`first_name` AS `First Name`,
`tbl_users`.`middle_name` AS `Middle Name`,
if((`tbl_stockholders`.`attendance_status` = 0),
'Absent',
'Present') AS `Attendance Status`,
if((`tbl_stockholders`.`voting_status` = 0),
'Not Voted',
'Voted') AS `Voting Status`
from
((((`tbl_stockholders`
join `tbl_shares` ON ((`tbl_stockholders`.`user_id` = `tbl_shares`.`user_id`)))
join `tbl_users` ON ((`tbl_stockholders`.`user_id` = `tbl_users`.`user_id`)))
join `tbl_images` ON ((`tbl_stockholders`.`user_id` = `tbl_images`.`user_id`)))
join `tbl_fingerprints` ON ((`tbl_stockholders`.`user_id` = `tbl_fingerprints`.`user_id`)))
order by `tbl_stockholders`.`user_id`
要使视图可更新,视图中的行与基础表中的行之间必须存在一对一的关系。还有一些其他构造使视图不可更新
详情如下:
是的,我相信您的查询,您使用的
JOIN
s和函数使您的视图不可更新。请阅读此文档页,特别注意多表视图有时可能是可更新的,假设它可以用合并算法处理。要使其工作,视图必须使用内部联接(而不是外部联接或并集)。此外,视图定义中只能更新一个表,因此SET子句必须只命名视图中一个表中的列。