CREATE TRIGGER IF NOT EXISTS 使用触发器监控mysql 表结构变化的例子
时间: 2024-03-20 12:39:21 浏览: 138
好的,以下是一个使用触发器监控 MySQL 表结构变化的例子:
首先,我们需要创建一个存储表结构变化的表,例如:
```mysql
CREATE TABLE IF NOT EXISTS `table_changes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`table_name` varchar(255) NOT NULL,
`change_type` varchar(50) NOT NULL,
`change_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
然后,我们可以创建一个触发器,在表结构变化时将相关信息插入到 `table_changes` 表中,例如:
```mysql
CREATE TRIGGER `table_structure_trigger`
AFTER ALTER ON `your_table_name`
FOR EACH STATEMENT
BEGIN
DECLARE table_name VARCHAR(255);
SET table_name = 'your_table_name';
INSERT INTO `table_changes` (`table_name`, `change_type`) VALUES (table_name, 'ALTER');
END;
```
这个触发器将在 `your_table_name` 表结构发生变化时自动触发,将表名和变化类型插入到 `table_changes` 表中。
注意,为了使触发器生效,需要将 `your_table_name` 替换为你要监控的表名,并确保触发器的语法正确。
阅读全文