mri*_*l4c 4 mysql sql triggers
是否可以在 MySQL 中应用触发器进行跨数据库访问 如果可以,请举一个例子。我的目的是如果数据库1中有任何新数据插入/更新/删除,则在数据库2中插入/更新/删除数据。我正在使用 MySQL 5.1
我知道这是一个老话题,但我只需要自己实现一个跨数据库触发器,我想在这里展示解决方案,因为其他读者可能会从中受益。
在触发器的代码中,可以引用目标数据库的全名database_name.table_name。
假设您在同一台服务器上有两个数据库:database1和database2。在这两个数据库中都有下表:
CREATE TABLE 'test' (
'id' int(10) DEFAULT NULL,
'name' varchar(100) DEFAULT NULL
)
Run Code Online (Sandbox Code Playgroud)
在database1您创建以下 INSERT 触发器:
USE database1;
DELIMITER //
CREATE TRIGGER sync_insert AFTER INSERT ON test
FOR EACH ROW
BEGIN
INSERT INTO database2.test SET id = NEW.id, name=NEW.name;
END; //
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)
为 UPDATE 和 DELETE 定义类似的触发器。
我想说这个解决方案比使用过程更简单、更直接。
我在 MySQL 5.1.73 和 MariaDB 10.2.13 上测试了上述内容。
| 归档时间: |
|
| 查看次数: |
6833 次 |
| 最近记录: |