在使用MySQL的触发器的过程中遇到一个比较蛋疼的问题。
报错信息如下:
![](https://box.kancloud.cn/5879969c18c203d96e83ad0a70b51254_1089x364.jpg)
于是查看下数据库中的triggers触发器的定义语句:
~~~
mysql> SHOW TRIGGERS\G
*************************** 1. row ***************************
Trigger: items_comment_insert
Event: INSERT
Table: hz_items_comment
Statement: BEGIN
UPDATE hz_items SET comment_count = comment_count + 1 WHERE id = new.item_id;
END
Timing: BEFORE
Created: NULL
sql_mode: STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
Definer: root@localhost
character_set_client: utf8
collation_connection: utf8_general_ci
Database Collation: latin1_swedish_ci
*************************** 2. row ***************************
Trigger: items_comment_delete
Event: DELETE
Table: hz_items_comment
Statement: BEGIN
UPDATE hz_items SET comment_count = comment_count - 1 WHERE id = old.item_id;
END
Timing: AFTER
Created: NULL
sql_mode: STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
Definer: root@localhost
character_set_client: utf8
collation_connection: utf8_general_ci
Database Collation: latin1_swedish_ci
2 rows in set (0.00 sec)
~~~
在上面的定义语句中我们看到了`Definer`触发器的定义者,那是因为在svn测试服务器的连接用户为luo_account用户。
**解决方案**
使用shell登录Linux终端,删除之前定义的触发器语句,并执行新的语句。
查看当前连接的用户:
~~~
mysql> \s
--------------
mysql Ver 14.14 Distrib 5.6.28, for Linux (x86_64) using EditLine wrapper
Connection id: 1339
Current database: www_welltrend
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
~~~
具体执行语句:
~~~
DROP TRIGGER items_comment_insert;
DROP TRIGGER items_comment_delete;
DELIMITER $
CREATE TRIGGER items_comment_insert BEFORE INSERT ON hz_items_comment
FOR EACH ROW BEGIN
UPDATE hz_items SET comment_count = comment_count + 1 WHERE id = new.item_id;
END;
$
DELIMITER ;
DELIMITER $
CREATE TRIGGER items_comment_delete AFTER DELETE ON hz_items_comment
FOR EACH ROW BEGIN
UPDATE hz_items SET comment_count = comment_count - 1 WHERE id = old.item_id;
END;
$
DELIMITER ;
~~~
- 开始
- PHP配置参数的介绍
- PHP代码优化
- php中的命名空间
- PHP文件上传类
- PHP文件下载
- PHP验证码
- ThinkPHP3.2 框架函数
- A函数:实例化控制器
- C函数:设置和获取配置参数
- D函数:实例化模型
- F 函数:快速缓存设置和存取
- M函数:例化模型(无需定义模型类)
- L函数:设置和获取语言变量
- S 函数:缓存设置和存取
- R函数:直接调用控制器的操作方法
- U函数:URL地址生成
- I 函数:安全获取系统输入变量
- 日志
- ThinkPHP在关闭调试模式导致函数被缓存
- MySQL触发器使用时遇到的坑
- PHP常用函数
- 五一回家记录
- window的PHP开发(wamp)下安装redis扩展
- Windows下安装使用Redis
- PHP7新特性
- 利用 phpmailer 类实现队列发送邮件
- GD 库图像处理
- 检测 PHP 模块是否开启
- GD 库操作一般步骤
- GD 库绘画改变字体
- GD 绘制验证码
- GD 缩略图实现
- GD 绘制水印
- 日期时间函数库
- PHP 函数
- 无限极分类