• 技术文章 >数据库 >mysql教程

    mysql怎么修改definer

    长期闲置长期闲置2022-05-19 17:30:46原创462

    修改方法:1、利用“update mysql.proc set definer=...”修改function的definer;2、利用“update mysql.EVENT set definer=...”修改event的definer。

    本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑。

    mysql怎么修改definer

    1.修改function、procedure的definer

    select definer from mysql.proc;  -- 函数、存储过程
    update mysql.proc set definer=‘user@localhost‘; -- 如果有限定库或其它可以加上where条件

    2.修改event的definer

    select DEFINER from mysql.EVENT; -- 定时事件
    update mysql.EVENT set definer=‘ user@localhost ‘;

    3.修改view的definer

    相比function的修改麻烦点:

    select DEFINER from information_schema.VIEWS;
    select concat("alter DEFINER=`user`@`localhost` SQL SECURITY DEFINER VIEW ",TABLE_SCHEMA,".",TABLE_NAME," as ",VIEW_DEFINITION,";") from information_schema.VIEWS where DEFINER<>‘user@localhost‘;

    查询出来的语句再执行一遍就好了。

    4.修改trigger的definer

    目前还没有具体方便的方法,可以借助工具端如HeidiSQL、sqlyog等来一个个修改。注意改前有必要锁表,因为如果改的过程中有其它表改变而触发,会造成数据不一致。

    推荐学习:mysql视频教程

    以上就是mysql怎么修改definer的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:mysql
    上一篇:mysql怎么转换为sqlite 下一篇:mysql5.7怎么修改root密码
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• mysql中where查询语句怎么用• mysql怎么取消用户权限• mysql怎么修改字段允许为空• mysql中update语句返回什么• mysql workbench中怎么注释
    1/1

    PHP中文网