在文檔和在線搜索中存在對語句和行級觸發器的支持的混淆。根據我見過的文檔,Firebird的最新版本支持聲明和行級觸發器。Firebird「For Each Row」觸發語法
Firebird應該支持SQL-92/99。標準的方法是在觸發器SQL中使用「for each row」,但是,這會導致firebird出現錯誤。
這裏是我的語句級觸發器,它的工作原理:
CREATE TRIGGER myExampleTrigger FOR myTable
AFTER UPDATE
AS
BEGIN
POST_EVENT 'testEvent';
END;
這裏是我的行級觸發器,它不工作:
CREATE TRIGGER myExampleTrigger FOR myTable
AFTER UPDATE
AS
FOR EACH ROW
BEGIN
POST_EVENT 'testEvent';
END;
的語句級觸發器工作發佈一個myTable上的更新事件。當我更新多行時,它只會發佈一個事件。
觸發語句讓它做一個行級觸發器的語法是什麼,以便我可以發佈一個事件FOR EACH ROW更新?
感謝您使用event_counter的指針。我瀏覽過所有的文檔,但仍然找不到將其包含在觸發器中的語法。我發現了一些關於在存儲過程中使用event_count的例子,但不是觸發器。你知道語法嗎? – mpearso3
計數器由事件回調檢索。這有點小技巧,但你肯定會找到一些例子。 –
@ mpearso3爲什麼你需要觸發器中的事件計數器:只需發佈事件。只有註冊了事件通知的人才有興趣。 –