当前位置: 首页 > 面试题库 >

Mysql中的跨数据库触发器

欧阳嘉
2023-03-14
问题内容

是否可以将触发器应用于MySQL中的跨数据库访问?如果是,请举一个例子。我的目的是如果在database1中插入/更新/删除了任何新数据,则在database2中插入/更新/删除数据。我正在使用MySQL
5.1


问题答案:

是的你可以。您可以创建一个过程并在触发器中调用它。程序示例:

DELIMITER //

CREATE PROCEDURE delete(in table VARCHAR(300), in db VARCHAR(300), in id INT)
BEGIN

set @query0 = CONCAT('DELETE FROM ', new_db, '.', tabela, ' WHERE id=',id);

PREPARE select_query0 FROM @query0;
EXECUTE select_query0;
DEALLOCATE PREPARE select_query0;

END; //

DELIMITER ;

然后创建触发器:

CREATE TRIGGER del_trigger BEFORE DELETE ON table
  FOR EACH ROW BEGIN
    CALL delete(db, table, OLD.id); 
  END;


 类似资料:
  • 问题内容: 我似乎无法创建触发器。我已经尝试了以下两种方式进行更新。我通过插入语句不断收到语法错误。我搜索了过去4个小时的论坛和网络搜索,没有任何变化。对此还有更多代码,它基本上会重复执行。任何帮助,将不胜感激。谢谢你。我正在运行MySQL 5.0,并通过phpMyAdmin 2.8.2.4作为Administrator / Root访问。 TRY 1(在所有字段和名称上带有和不带有qoutes)

  • 我正在尝试在table of数据库与table of数据库之间创建外键: 用户id int(10)未签名的编号 Id int(10)无符号编号 我创建了查询 "外键约束格式错误"有人能帮助我如何实现这一点吗?

  • 本文向大家介绍如何列出MySQL数据库中的所有触发器?,包括了如何列出MySQL数据库中的所有触发器?的使用技巧和注意事项,需要的朋友参考一下 要列出MySQL数据库中的所有触发器,可以使用SHOW命令。查询如下- 以下是输出- 您可以在以下查询的帮助下访问information_schema表。 注意-您必须具有MySQL 5.0.10及更高版本。我目前正在使用MySQL版本8.0.12- 以下

  • 问题内容: 可以说我在同一台物理服务器上有两个独立的数据库X和Y。 我的所有查询当前都用完了X。 我发现YI中有一张表想供X使用JOINS。 所以…现在,我在X和Y中都保留了同时需要X和Y的一个表的副本,但是Y中的数据一直在变化,因此该副本很快就过时了。对于这个应用程序来说并不重要,但是对于我现在正在设计的另一个应用程序来说,它根本就行不通。 X现在只需要对Y中的表的读访问权限。 有没有一种有效的

  • 问题内容: 我建议使用触发器来检查跨表完整性约束,以回答此问题。在评论中建议它可能会引起问题: 进行跨行检查的触发器在大多数数据库上很少起作用…因为它们无法从其他事务中读取未提交的行 不过,我没有找到任何支持该说法的消息来源。官方 文档未提及任何内容。我发现的其他问题在本文的SO上进行了介绍它主要批评潜在的隐藏复杂性,因为一眼就看不到触发器。但是,即使是评分最高的答案也承认其用于完整性问题。 所以

  • 本文向大家介绍详解数据库中跨库数据表的运算,包括了详解数据库中跨库数据表的运算的使用技巧和注意事项,需要的朋友参考一下 1. 简单合并(FROM) 所谓跨库数据表,是指逻辑上同一张数据表被分别存储在不同数据库中。其原因有可能是因为数据量太大,放在一个数据库难以处理,也可能在业务上就需要将生产库和历史库分开。而不同的数据库,可能只是部署在不同的机器上的同种数据库,也可能是连类型都不同的数据库系统。