关于 SQL 自动化

一直在思考怎么做好自动化,是运行在 mysql 之下用 API 跑嘛?还是形成数据文件,mysql 会自己定时跑批?

 

参考文献

1.mysql 触发器输出到某一个文件_mob64ca12f831ae的技术博客_51CTO博客

(发现一个 Edge 彩蛋,或许是博客园的彩蛋,上述链接可以直接复制!)

 

2.MySQL触发器trigger的使用 - 数据派 - 博客园

如果使用的是 mysql community 怎么处理触发器,具体是  Information_schema数据库下的triggers表。

 

3.CREATE TRIGGER (Transact-SQL) - SQL Server | Microsoft Learn

如何在SQL数据库中创建和使用触发器?-腾讯云开发者社区

总结来说,就是运行 create trigger 之后,具体的物理位置 information_schema。这是初级的。还有更加变化的做法,例如  INTO OUTFILE (第一篇文献),直接输出 .txt 文件。抑或,直接发邮件(以前在互联网公司有领导提出过的需求)。

 

4.Mysql自带的邮件发送功能

关于 MySQL 自带的发邮件功能的函数

 

5.mysql 表 触发器 发送邮件_mob64ca12d52440的技术博客_51CTO博客

用 API 发邮件

 

具体操作

create trigger TRIGGER_NAME
after insert on TABLE_NAME
for each row
begin
……
end

提交即可,可以动手做一做实验。

 

其他问题

1.报错  Access denied for user 'XXXX'@'localhost' to database 'information_schema' 

解决:

1.SHOW GRANTS FOR 'XXXX'@'localhost';  //查看权限

2.GRANT INSERT ON information_schema.triggers TO 'XXXX'@'localhost'; FLUSH PRIVILEGES;  // 好像确实没权限  打算换个服务器再测试

 

重新找了块服务器

1.创建成功

delimiter ||
create TRIGGER test001
after insert on slc_test002
for each row
begin
insert into slc_test001 ( id, event )
values ( 0, current_timestamp );
end

2.查看两张表

e5fe07f3-91fc-496b-ae9e-2b31fe86055a

 

3.运行插入语句,插入表  slc_test002

a2a9843c-4953-46c1-a203-2a82bc456dab

 

4.看看表 slc_test001 发生了什么?

4e554aca-3a86-4b28-9aed-14c9a7a13ebb

 

5.注意到 BEGIN …… END 中间可以放置很多语句

mysql> DELIMITER ||
mysql> CREATE TRIGGER trig2 BEFORE DELETE
-> ON work FOR EACH ROW
-> BEGIN
->   INSERT INTO time VALUES(NOW());
->   INSERT INTO time VALUES(NOW());
-> END||
mysql> DELIMITER ;

来源:MySQL触发器trigger的使用 - 数据派 - 博客园

 

6.另外,这里的终止符 “||”  是为啥暂时先留个疑问,知道些触发器是时候是这么干。 

 

今日立冬

祝工作愉快

 

Jingyi

ShoelessCai 科技论文解读 

FreeLocked 房源资源

 

posted on 2025-11-07 08:33  Mira_2019  阅读(5)  评论(0)    收藏  举报