触发器
A.5.1。 | 在哪里可以找到MySQL 8.0触发器的文档? |
请参见“触发器语法和示例”。 | |
A.5.2。 | 是否有MySQL触发器的讨论论坛? |
是。可从https://forums.mysql.com/list.php?99获得。 | |
A.5.3。 | MySQL 8.0是否具有语句级或行级触发器? |
在MySQL 8.0中,所有触发器都是 | |
A.5.4。 | 是否有任何默认触发器? |
没有明确。对于某些 | |
A.5.5。 | 在MySQL中如何管理触发器? |
在MySQL 8.0中,可以使用 通过查询 | |
A.5.6。 | 有没有办法参见给定数据库中的所有触发器? |
是。您可以
有关此表的更多信息,请参见“ The INFORMATION_SCHEMA TRIGGERS表”。 您还可以使用 | |
A.5.7。 | 触发器存储在哪里? |
触发器存储在 | |
A.5.8。 | 触发器可以调用存储过程吗? |
是。 | |
A.5.9。 | 可以触发访问表吗? |
触发器可以访问其自己的表中的旧数据和新数据。触发器也可以影响其他表,但是不允许修改调用该函数或触发器的语句已经在使用(用于读取或写入)的表。 | |
A.5.10。 | 一个表可以有多个具有相同触发事件和动作时间的触发吗? |
在MySQL 8.0中,可以为给定的表定义具有相同触发事件和动作时间的多个触发。例如, | |
A.5.11。 | 触发器可以通过UDF调用外部应用程序吗? |
是。例如,触发器可以调用 | |
A.5.12。 | 触发器是否可以更新远程服务器上的表? |
是。可以使用 | |
A.5.13。 | 触发器可用于复制吗? |
是。但是,它们的工作方式取决于您使用的是MySQL的“经典”基于语句的复制格式还是基于行的复制格式。 使用基于语句的复制时,从服务器上的触发器由在主服务器上执行(并复制到从服务器)的语句执行。 使用基于行的复制时,由于在主服务器上运行然后又复制到从服务器上的语句,因此不会在从服务器上执行触发器。而是在使用基于行的复制时,将在主服务器上执行触发器引起的更改应用于从服务器。 有关更多信息,请参见“触发器语法”。 | |
A.5.14。 | 如何将通过触发器触发的操作复制到从属设备上? |
同样,这取决于您使用的是基于语句的复制还是基于行的复制。 基于语句的复制。首先,必须在从服务器上重新创建主服务器上存在的触发器。完成此操作后,复制流程将与参与复制的任何其他标准DML语句一样工作。例如,考虑一个
基于行的复制。使用基于行的复制时,在主服务器上执行触发器引起的更改将应用于从服务器。但是,在基于行的复制下,触发器本身实际上并未在从属服务器上执行。这是因为,如果主服务器和从属服务器都应用了来自主服务器的更改,并且此外,导致这些更改的触发器应用于从属服务器,则更改实际上将在从属服务器上应用两次,从而导致在主人和奴隶。 在大多数情况下,基于行的复制和基于语句的复制的结果都是相同的。但是,如果在主服务器和从服务器上使用不同的触发器,则不能使用基于行的复制。(这是因为基于行的格式会将在主服务器上执行的触发器所做的更改复制到从服务器上,而不是将导致触发器执行的语句复制到从服务器上,并且不会执行从服务器上的相应触发器。)相反,任何语句导致执行此类触发器的操作必须使用基于语句的复制进行复制。 有关更多信息,请参见“触发器语法”。 |