mysql 跨库的触发器

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

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

示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#示例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;

关于触发器