MySQL-两个数据库之间的更新后触发器
这几个小时来一直有一些问题。我绝不是一个MySQL的家伙,一直在寻找解决方案,但运气不佳。这基本上就是我所拥有的 T1:MySQL-两个数据库之间的更新后触发器,mysql,database,triggers,schema,Mysql,Database,Triggers,Schema,这几个小时来一直有一些问题。我绝不是一个MySQL的家伙,一直在寻找解决方案,但运气不佳。这基本上就是我所拥有的 T1:CollectionDB。源代码 indexName | status_id Test | 11 T2:管理控制台.MC\u时间表 NAME | ACTIVE Test | 0 基本上,我需要的触发器应该在T1.status_id从任意数字更改为8之后运行。当它运行时,它应该找到与相应的T1.indexName匹配的T2.NAME
CollectionDB
。源代码
indexName | status_id
Test | 11
T2:管理控制台
.MC\u时间表
NAME | ACTIVE
Test | 0
基本上,我需要的触发器应该在T1.status_id从任意数字更改为8之后运行。当它运行时,它应该找到与相应的T1.indexName匹配的T2.NAME,并将ACTIVE从0更改为1。这是我到目前为止所做的
DELIMITER &&
CREATE TRIGGER `UpdateSynch`
AFTER UPDATE ON `CollectionDB`.source FOR EACH ROW
BEGIN
UPDATE `ManagementConsole`.MC_SCHEDULE AS T1
SET T1.ACTIVE = 1
WHERE (NOW.indexName = T1.NAME) AND ((OLD.status_id != 8) AND (NOW.status_id = 8));
END&&
我得到了一个“错误模式中的触发器”错误,这是有意义的,因为我试图在不同的模式中进行更新。这有什么办法吗?提前感谢。您必须在与目标表相同的数据库中创建触发器,即
CollectionDB
;但是,当前必须选择另一个数据库作为默认架构
因此,要么:
CollectionDB
数据库:
USE CollectionDB;
CREATE TRIGGER UpdateSynch ...
CREATE TRIGGER
语句中明确指定要在其中创建触发器的数据库:
CREATE TRIGGER CollectionDB.UpdateSynch ...