• 技术文章 >数据库 >phpMyAdmin

    解决phpMyadmin给MySQL数据表创建触发器遇到的问题

    藏色散人藏色散人2021-05-22 16:54:43转载483
    下面由phpmyadmin教程栏目给大家介绍用phpMyadmin给MySQL数据表创建触发器遇到的问题,希望对需要的朋友有所帮助!

    今天给MySQL数据库的表创建触发器,想达到的效果是:修改a表的字段received之后,同时要将b表中的registerStatus更新为1,将registerIP改为receive值。

    1、首先写建立触发器的sql语句:

    1)插入时的:

    CREATE TRIGGER insertref BEFORE INSERT ON a
     FOR EACH ROW BEGIN 
    UPDATE b SET registerStatus =1 WHERE NEW.id = id and NEW.received is not null and NEW.received !='';
    update b set registerIP=NEW.received where NEW.id = id;
    end

    2)删除时:

    CREATE TRIGGER deleteref BEFORE DELETE ON a
     FOR EACH ROW begin
    update b set registerStatus =0 WHERE OLD.id = id;
    update  b set registerIP=NULL where OLD.id = id;
    end

    3)更新时:

    CREATE TRIGGER updateref  BEFORE UPDATE ON a
     FOR EACH ROW BEGIN 
    update b set registerIP=NEW.received where OLD.id=id;
    end

    问题1:

    写完语句执行的时候,报错,执行不了,原因是用phpMyAdmin执行建立触发器的时候,要将

    输入sql语句页面的下方的Delimiter中输入//。

    问题2:在建立好触发器之后,在做测试的时候,在a表中无法插入数据,报错:

    1558 - Column count of mysql.proc is wrong. Expected 20, found 16. Created with MySQL 50018, now running 50146. Please use mysql_upgrade to fix this error.

    网上有很多帖子说是因为,之前升级过数据库,但是数据结构没有升级造成的。

    解决办法:执行 sudo mysql_upgrade -u root -p 提示输入密码,输入密码之后,重启数据库。则可以插入数据了。

    以上就是解决phpMyadmin给MySQL数据表创建触发器遇到的问题的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:csdn,如有侵犯,请联系admin@php.cn删除
    专题推荐:phpMyadmin
    上一篇:怎么修改和重置WAMP的phpMyAdmin密码 下一篇:如何解决phpmyadmin打开很慢的问题
    大前端线上培训班

    相关文章推荐

    • 关于phpmyadmin爆破绝对路径• mysql8 phpmyadmin密码登录失败怎么办• 怎么解决phpmyadmin显示MySQL数据表“使用中” 修复后依然无效的问题• 详解phpmyadmin创建表和id user自增长的设置• 怎么修改和重置WAMP的phpMyAdmin密码

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网