`

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);
?>
分享到:
评论

相关推荐

    ACC转MYSQL

    3. SQL语句生成:"result.php"和"replacecol.php"可能涉及到生成和执行SQL语句来创建MySQL数据库结构和插入数据。这可能包括CREATE TABLE语句来定义表结构,以及INSERT INTO语句来填充数据。 4. 功能实现:"switch....

    mysql_+ssi框架

    2. SQL语言:用于与MySQL交互的语言,包括数据查询(SELECT)、数据插入(INSERT)、数据更新(UPDATE)和数据删除(DELETE)语句,以及数据库和表的创建、修改等操作。 3. 存储引擎:InnoDB和MyISAM是最常见的两个...

    MYsql-assist

    1. **数据库管理**:通过MySQL Assist,用户可以轻松创建、删除、修改数据库,以及管理表、视图、存储过程、触发器等各种数据库对象。这包括了数据定义语言(DDL)的编写和执行,使得数据库结构的构建和调整变得简单...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例066 员工信息的批量删除 98 实例067 表格的动态创建 99 实例068 SESSION购物车中数据的读取 100 实例069 员工信息的管理 102 实例070 网页版九九乘法表 104 实例071 读取数组购物车中的数据 105 实例072 图像...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例066 员工信息的批量删除 98 实例067 表格的动态创建 99 实例068 SESSION购物车中数据的读取 100 实例069 员工信息的管理 102 实例070 网页版九九乘法表 104 实例071 读取数组购物车中的数据 105 实例072 图像...

    数据库管理软件

    在数据库管理方面,MySQL提供了丰富的数据类型,包括整数、浮点数、字符串、日期和时间等,以及复杂的数据结构如表、视图、索引和触发器。此外,它还支持事务处理,保证了数据的一致性和完整性。在安全性方面,MySQL...

    phpMyAdmin-4.0.10.2-all-languages

    3. **数据插入与编辑**:用户可以直接在Web界面上输入数据,批量导入CSV或其他格式的数据文件,或者通过SQL语句进行插入。同时,可以编辑现有记录,甚至进行多行编辑和撤销/重做操作。 4. **查询工具**:phpMyAdmin...

    数据库课程设计-图书馆管理系统

    6. **存储过程与触发器**:为了提高效率和数据安全性,可以编写存储过程(预编译的SQL代码段)来执行常见任务,如批量借书或还书。触发器则可以在特定事件(如插入、更新或删除记录)发生时自动执行某些操作,比如在...

    数据库navicate 12 最新说明

    - **SQL创建工具**:辅助生成SQL语句。 - **查询参数**:动态地更改查询结果。 - **查询结果**:展示查询结果,并支持进一步的数据处理。 **MongoDB** - **脚本编辑器**:编写MongoDB命令。 - **查找创建工具**:...

Global site tag (gtag.js) - Google Analytics