我有一個表名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