php批量生成mysql触发器定义语句
<?phpdefine('TRIGGER_AFTER_INSERT_SQL',"DELIMITER |DROP TRIGGER IF EXISTS %s;CREATE TRIGGER %sAFTER INSERT ON %sFOR EACH ROW BEGIN SET @result_set = (select clear_cache());END |DELIMITER ;\r\n\r\n");define('TRIGGER_AFTER_UPDATE_SQL',"DELIMITER |DROP TRIGGER IF EXISTS %s;CREATE TRIGGER %sAFTER UPDATE ON %sFOR EACH ROW BEGIN SET @result_set = (select clear_cache());END |DELIMITER ;\r\n\r\n");define('TRIGGER_AFTER_DELETE_SQL',"DELIMITER |DROP TRIGGER IF EXISTS %s;CREATE TRIGGER %sAFTER DELETE ON %sFOR EACH ROW BEGIN SET @result_set = (select clear_cache());END |DELIMITER ;\r\n\r\n");mysql_connect('127.0.0.1:3307','root','') or die(mysql_error());mysql_select_db('db');mysql_query('SET NAMES UTF8');$triggerDDL = '';$rs = mysql_query('SHOW TABLES');while($row = mysql_fetch_array($rs)){$tblName = $row['Tables_in_db'];$triggerDDL .= "\r\n--\r\n-- 表的触发器 `".$tblName."`\r\n--\r\n";$triggerName = $tblName.'_insert';$triggerDDL .= sprintf(TRIGGER_AFTER_INSERT_SQL,$triggerName,$triggerName,$tblName);$triggerName = $tblName.'_update';$triggerDDL .= sprintf(TRIGGER_AFTER_UPDATE_SQL,$triggerName,$triggerName,$tblName);$triggerName = $tblName.'_delete';$triggerDDL .= sprintf(TRIGGER_AFTER_DELETE_SQL,$triggerName,$triggerName,$tblName);}file_put_contents('db_trigger.sql',$triggerDDL);?>