解决phpMyadmin给MySQL数据表创建触发器遇到的问题
下面给大家介绍用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;
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;
3)更新时:
CREATE TRIGGER updateref BEFORE UPDATE ON a FOR EACH ROW BEGIN update b set registerIP=NEW.received where OLD.id=id;
问题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 提示输入密码,输入密码之后,重启数据库。则可以插入数据了。
1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!
2.本站部分资源包有加密,加密统一密码为:www.51zhanma.cn
3. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
4. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
5. 如果您也有好的资源或教程,您可以投稿发布,用户购买后有销售金额的80%以上的分成收入!
6.如有侵权请联系客服邮件kefu@zhanma.cn
站码网 » 解决phpMyadmin给MySQL数据表创建触发器遇到的问题
2.本站部分资源包有加密,加密统一密码为:www.51zhanma.cn
3. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
4. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
5. 如果您也有好的资源或教程,您可以投稿发布,用户购买后有销售金额的80%以上的分成收入!
6.如有侵权请联系客服邮件kefu@zhanma.cn
站码网 » 解决phpMyadmin给MySQL数据表创建触发器遇到的问题