CREATE TRIGGER update_销售额汇总 AFTER update ON test.触发器测试_销售明细 FOR EACH ROW BEGIN UPDATE test.触发器测试_销售额汇总 b SET b.销售额汇总 = ( SELECT SUM(test.触发器测试_销售明细.销售额) FROM test.触发器测试_销售明细 WHERE test.触发器测试_销售明细.城市=b.城市 ); END;。显示不安全查询,需要如何修改设置
时间: 2024-03-26 13:34:03 浏览: 62
Create-trigger.zip_sql create trigger_sql 触发_trigger
如果您在MySQL中遇到了“不安全查询”的问题,可以通过以下两种方式解决:
1. 修改MySQL的安全配置
在MySQL安装目录下找到my.ini或my.cnf文件,添加以下两行配置:
```
[mysqld]
log_bin_trust_function_creators=1
```
然后重启MySQL服务即可。
2. 修改触发器定义
将触发器定义中的`DEFINER`改为当前用户,例如:
```
CREATE DEFINER = CURRENT_USER TRIGGER update_销售额汇总 AFTER update ON test.触发器测试_销售明细 FOR EACH ROW BEGIN UPDATE test.触发器测试_销售额汇总 b SET b.销售额汇总 = ( SELECT SUM(test.触发器测试_销售明细.销售额) FROM test.触发器测试_销售明细 WHERE test.触发器测试_销售明细.城市=b.城市 ); END;
```
修改后再次执行即可。
需要注意的是,在修改MySQL的安全配置时需要谨慎,同时在修改触发器定义时也需要注意语法正确性,以避免出现其他问题。
阅读全文