1

Linksフィールドを持つ名前のテーブルが 1 つあります。

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

データベース内Tridion_Broker

[PUBLICATION_ID], [URL]フィールドの「リンク」テーブルからデータを取得し、それを別のデータベース ( GoogleLinks) およびテーブルに配置する、挿入/更新時に 1 つの SQL トリガーを作成したいと考えていますMyLinks

EDIT
私の実装は以下の通りです:

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 ;
4

2 に答える 2

5

データベース アイテムの作成、データベース モデルの変更などは、私の知る限り、サポート契約を無効にします。

このアプローチに進む前に、再確認することをお勧めします。

Deployer/Broker 拡張機能を使用して同じシナリオを実現できます。その場合、データモデルに触れることなく、リンク情報を別のテーブルに書き込みます。

Deployer/Broker 拡張機能はサポートされているシナリオであり、非常にうまく機能します。

于 2012-04-26T13:28:13.543 に答える
2

Miguel が言及している拡張機能のサンプルは、 https ://www.sdltridionworld.com/articles/sdltridion2011/tutorials/Deployer_Extensions_With_Eclipse_1.aspx にあります。

于 2012-04-30T21:19:36.313 に答える