`

php批量生成mysql触发器定义语句

    博客分类:
  • PHP
阅读更多
<?php
define('TRIGGER_AFTER_INSERT_SQL',"DELIMITER |
DROP TRIGGER IF EXISTS %s;
CREATE TRIGGER %s
AFTER INSERT ON %s
FOR 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 %s
AFTER UPDATE ON %s
FOR 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 %s
AFTER DELETE ON %s
FOR 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);
?>
分享到:
评论

相关推荐

    mysql触发器之创建多个触发器操作实例分析

    本文实例讲述了mysql触发器之创建多个触发器操作。分享给大家供大家参考,具体如下: 这次记录的内容mysql 版本必须得是5.7.2+的哈,之前的会不好使的。废话不多说,咱们开始正文哈。 在mysql 5.7.2+版本之前,我们...

    mysql批量修改语句

    mysql批量语句,传入list 批量修改mysql批量语句,传入list 批量修改mysql批量语句,传入list 批量修改

    mysql触发器之触发器的增删改查操作示例

    MySQL触发器是数据库管理系统提供的一种机制,用于在特定的数据操作(如INSERT、UPDATE、DELETE)发生之前或之后自动执行预定义的SQL语句。这些触发器可以用来实现复杂的业务规则,确保数据的一致性和完整性,或者...

    MYSQL触发器教程.doc

    4. **触发器SQL语句**:定义在触发事件时执行的具体SQL代码,可以包含复杂的流程控制语句(如IF、CASE、WHILE、LOOP等)和变量声明。 在使用触发器时,需要注意以下几点: - **限制与兼容性**:触发器不能访问表,...

    MySQL触发器.pdf

    6. **语句(Statement)**:定义触发器执行的具体SQL语句。 #### 权限需求 创建和管理触发器需要相应的数据库权限,一般需要拥有对目标表的ALTER权限。 #### 引用OLD和NEW列 在触发器中,可以使用`OLD`和`NEW`...

    mysql批量导出建表语句.zip

    压缩包中的文件"mysql批量导出建表语句"很可能就是这个过程的结果,包含了由Kettle生成的所有建表语句。你可以打开这些文件查看具体的SQL语句,并在需要时在新的MySQL环境中执行它们以重新创建相同的数据库结构。 ...

    mysql触发器

    MySQL触发器是数据库管理系统中的一个重要特性,用于在特定的数据操作(如INSERT、UPDATE或DELETE)发生时自动执行预定义的SQL语句。这些语句可以是复杂的业务逻辑,用来确保数据的一致性、完整性和安全性。在本篇...

    mysql触发器文档

    ### MySQL触发器知识点详解 #### 引言 MySQL触发器是一种服务器端的程序,它可以响应特定的数据库事件(如插入、更新或删除记录)而自动执行。触发器自MySQL 5.0版本起被引入,这标志着MySQL在功能性上的一大进步,...

    mysql触发器教程

    ### MySQL触发器教程知识点详解 #### 一、MySQL触发器简介 MySQL触发器是一种存储在数据库中的特殊类型的存储过程,当特定的事件(如插入、更新或删除数据)发生时自动执行。它们允许用户定义一系列复杂的规则和...

    mysql触发器使用

    在深入探讨MySQL触发器的使用之前,我们先来理解一下什么是触发器以及它在数据库管理中的作用。触发器是数据库中一种特殊的存储过程,当特定的事件(如INSERT、UPDATE或DELETE操作)在指定的表上发生时自动执行。...

    MySQL 触发器定义与用法简单实例

    MySQL触发器是数据库管理系统中的一个重要特性,用于在特定的数据操作(如INSERT、UPDATE或DELETE)发生时自动执行预定义的SQL语句。触发器的主要作用是实现数据的完整性约束,或者进行复杂的业务逻辑处理,而这些...

    MySQL触发器.rar

    MySQL触发器是数据库管理系统中的一个重要概念,主要用于在特定的数据操作(如INSERT、UPDATE或DELETE)发生时自动执行预定义的SQL语句。这些语句可以是复杂的业务逻辑,用于实现数据验证、同步或其他自动化任务。...

    MYSQL触发器使用详解

    MYSQL触发器,可以使用它用来进行监控,例如商品价格变化,下单后商品库存减少等实用性操作!

    kettle批量导出mysql建表语句

    在这个场景中,“kettle批量导出mysql建表语句”是一个关于如何使用Kettle来自动化地从MySQL数据库中提取建表语句,包括数据表和视图的创建语句,以便于备份或在其他环境中重建相同结构的过程。 首先,我们需要了解...

    oracle到mysql建表语句迁移

    oracle向mysql建表语句的迁移。 直接表结构的生成sql脚本

    MYSQL触发器在PHP项目中用来做信息备份、恢复和清空

    在MySQL数据库中,触发器是一种非常强大的工具,可以在特定的数据操作(如INSERT, UPDATE, DELETE)发生时自动执行预定义的SQL语句。在PHP项目中,我们可以利用触发器来实现信息的备份、恢复和清空功能,以提高数据...

    Excel根据表格,批量生成sqlserver语句 ,生成建表语句,自行到数据库中执行

    标题提到的“Excel根据表格,批量生成sqlserver语句,生成建表语句,自行到数据库中执行”,就是一种利用Excel宏自动化生成SQL Server建表语句的方法。这种方法适用于已有数据结构清晰的Excel表格,通过特定的规则...

    mysql触发器之创建使用触发器简单示例

    本文实例讲述了mysql触发器之创建使用触发器。分享给大家供大家参考,具体如下: 我们可以可以使用CREATE TRIGGER语句创建一个新的触发器,来看下具体的语法: CREATE TRIGGER trigger_name trigger_time trigger_...

    mysql触发器.pdf

    MySQL提供了一些语句来查看和管理触发器。例如,查看所有触发器的语句: ```sql SHOW TRIGGERS; ``` 可以使用`like`子句来过滤特定的触发器名称: ```sql SHOW TRIGGERS LIKE 'usermaps%'; ``` 此外,可以通过`...

Global site tag (gtag.js) - Google Analytics