Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可更新的mysql视图_Mysql_Workbench - Fatal编程技术网

可更新的mysql视图

可更新的mysql视图,mysql,workbench,Mysql,Workbench,我能就如何更新视图提供建议吗?这是我创建的视图。。但是由于存储函数,它是不可更新的,对吗?联接查询是否也不可更新?还有if函数?请帮帮我…对不起我的英语 CREATE ALGORITHM = UNDEFINED DEFINER = `root`@`localhost` SQL SECURITY DEFINER VIEW `view_attendance_dgv` AS select `tbl_stockholders`.`user_

我能就如何更新视图提供建议吗?这是我创建的视图。。但是由于存储函数,它是不可更新的,对吗?联接查询是否也不可更新?还有if函数?请帮帮我…对不起我的英语

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子句必须只命名视图中一个表中的列。