mysql 跨库的触发器

今天遇到一个问题,想通过写一个垮库的触发器来解决。
其实垮库的触发器和同一个库的触发器,没有多大的区别。
只需要在操作的表前面加上数据库就可以了。

另外,触发器是存储在存在触发事件的表对应的数据库中的,
但是在触发执行语句中不用显示的更换数据库(use database)。

示例代码:


#示例1
DELIMITER $
USE `tom`$
DROP TRIGGER /*!50032 IF EXISTS */ `trigger1`$
CREATE
/*!50017 DEFINER = 'root'@'localhost' */
TRIGGER `trigger1` AFTER INSERT ON `tom`.`stu`
FOR EACH ROW BEGIN
INSERT INTO `test`.`coder` VALUES(new.id,new.name);
END
$
DELIMITER ;
#示例2
DELIMITER & USE `shine` &
DROP TRIGGER IF EXISTS `object_permission_trigger` &
CREATE TRIGGER `object_permission_trigger` AFTER UPDATE ON `object`
FOR EACH ROW BEGIN IF old.type = 'product' OR old.type = 'business' THEN
UPDATE `permission` SET `name` = REPLACE( `name` , old.name, new.name )
WHERE `object_id` = old.id;

END IF ;

END &
DELIMITER;

关于触发器

发表评论

电子邮件地址不会被公开。 必填项已用*标注