同事离职,又一个一个烂摊子要收拾。这里修修,那里补补都没有精力来写点东西。
明天回家,上午整理好文档。下午决定抽点时间,把最近的东西尽量理一理。很多灵感都已经遗忘。我们总在不断面对,所以我们不断遗忘。【syslog、mysql优化、触发器、存储过程、文件读写……】疯狂的Google着这些关键词,以求在对项目整体改动最小、影响最小情况下完成这些工作。
过程很痛苦,今天这篇算是痛定思痛吧!
在技术可行的情况下,优雅的设计永远很重要,否则就不断痛苦吧。(思考,成熟的思考一定在行动之前)
言归正传:触发器、存储过程可以理解一些预先编写好的函数,存储在数据库服务器上。触发器关联到具体表,对一张数据表进行插入、更新、删除这三类操作前、操作后都可以做一些事情,比如:删除某张表一条记录后,可以同时删除一张相关表中的对应记录。而这些工作都会由数据库自动完成。
一个例子:
说明:上面例子实现功能,向表tbl_1中插入一条数据之后,判断tbl_2中有没有此记录,如果没有插入一条新的记录到tbl_2,如果有对应name则更新一下tbl_2的record字段。(触发器语法解释可以Google其他资料)
存储过程,一段编写好的SQL语句可以封装成函数,直接调用:
一个例子:
说明:上面例子实现一个数据备份长文件功能,pro_test()函数三个参数:e_table表名称,e_filename 文件名称,e_condition 条件
具体语法可以Google。