繁体   English   中英

创建SQL触发器(插入或更新),它将从一个表中获取数据并将其放置到另一个数据库表中

[英]Creating SQL Trigger (insert or update) which will take data from one table and will put to another database table

我有一张桌子,名字叫Links字段

[PUBLICATION_ID],
[PAGE_ID],
[COMPONENT_ID],
[COMPONENT_TEMPLATE_ID],
[COMPONENT_TEMPLATE_PRIORITY],
[COMPONENT_POSITION],[URL]

在数据库Tridion_Broker

我想在插入/更新上创建一个SQL触发器,该触发器将从“链接”表中获取字段[PUBLICATION_ID], [URL] ,并将其放入不同的数据库( GoogleLinks )和表MyLinks

编辑
我的实现如下:

DROP TRIGGER IF EXISTS Update_Google_List;
DELIMITER $$
CREATE TRIGGER Update_Google_List AFTER INSERT , UPDATE 
    ON Tridion_Broker.dbo.Links
FOR EACH ROW 
BEGIN
INSERT INTO GoogleLinks.dbo.MyLinks (PUBLICATION_ID, URL)
SELECT DISTINCT PUBLICATION_ID as n,URL as u 
FROM Tridion_Broker.dbo.Links
WHERE Page_ID =@PageID 
AND Component_Template_Priority >0 
AND PUBLICATION_ID NOT IN(232,481) 
AND NOT EXISTS (SELECT 1 
FROM MyLinks as g 
WHERE g.PUBLICATION_ID = Links.PUBLICATION_ID
)
ORDER BY PUBLICATION_ID
END$$
DELIMITER ;

据我所知,创建数据库项目,修改数据库模型等。使支持合同无效。

我建议您仔细检查,然后再继续使用此方法。

您可以使用Deployer / Broker扩展来实现相同的方案。 在这种情况下,您可以在不触摸数据模型的情况下将链接信息写入其他表中。

Deployer / Broker扩展是受支持的方案,并且运行良好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM