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

来源:互联网 发布:守望先锋皮肤推荐 知乎 编辑:程序博客网 时间:2024/05/09 11:44

今天给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 提示输入密码,输入密码之后,重启数据库。则可以插入数据了。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 书本上粘了有油怎么办 手被水泡了皱了怎么办 水泡破了感染了怎么办 夏天腋下出汗会弄湿衣服怎么办 夏天腋下出汗多弄湿衣服怎么办 上眼皮干燥起皮怎么办 怀孕下面湿又痒怎么办 内裤穿久了有异味怎么办 刨腹产私处捂烂了怎么办 猫咬手指出血了怎么办 老有白带涌出来怎么办 耳朵里塞了珠子怎么办 树脂发光字烧了怎么办 马蹄莲长得太高怎么办 百合球的芽断了怎么办 种的百合开败怎么办 盆栽百合花开完之后怎么办 土养百合花谢了怎么办 多肉叶子不饱满怎么办 冬天富贵竹叶子发黄怎么办水养 富贵竹叶子发黄怎么办水养 水养富贵竹有虫怎么办 水养的富贵竹叶子发黄怎么办 百合花水里的盐放多了怎么办 芦荟叶子发黄干瘪了怎么办 水插百合不开花怎么办 干百合冷水泡了怎么办 牡丹籽油过期了怎么办 ps画布建小了怎么办 腰突然疼的受不了了怎么办 微信里面打不开表格怎么办? 浏览器未正常加载相关控件怎么办 猫的眼睛发炎了怎么办 橡胶手机壳松了怎么办 橡胶手机壳小了怎么办 苹果手机下载不了软件了怎么办 苹果手机浏览器下载不了软件怎么办 小狗吃了硬的棉花怎么办 小狗吃了隔尿垫里的棉花怎么办 眼睫毛掉进眼睛里怎么办 爱掉头发怎么办吃什么