我有一个表名Links
与数据库Tridion_Broker
创建SQL触发器(插入或更新),将一个表取数据,并把到另一个数据库表
我场
[PUBLICATION_ID],
[PAGE_ID],
[COMPONENT_ID],
[COMPONENT_TEMPLATE_ID],
[COMPONENT_TEMPLATE_PRIORITY],
[COMPONENT_POSITION],[URL]
希望在插入/更新时创建一个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 [email protected]
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 ;
@OMG我添加的代码试过,请建议什么样的变化可以为最佳性能的增加来实现,其实我要找数据库的性能。 – 2012-04-26 05:01:28
您可以简单地从触发器可以访问的插入表中提取值,并将其插入到其他表中。 – 2012-04-26 05:12:09
您确定这是针对SQL Server的吗?触发器中的语法看起来不像我之前见过的。 – 2012-04-26 05:12:20