我正在把整个数据库从Firebird迁移到PostgreSQL,这不是火箭科学。但我对触发器有严重的问题。特别是火鸟的立场论证。
事实上,我在寻找职位行为。我需要它,但在PostgreSQL中。
这是《火鸟》中的触发器:
此触发器需要首先执行:
/* Trigger: TRG_CFE_ESTOQUE_PROCESSADO */
CREATE OR ALTER TRIGGER TRG_CFE_ESTOQUE_PROCESSADO FOR ITENS_CFE
BEFORE UPDATE POSITION 0
AS
BEGIN
IF(NEW.ITE_QTD <> OLD.ITE_QTD)THEN
BEGIN
NEW.ITE_ESTOQUE_PROCESSADO = 'N';
END
END
这个需要在以下情况下执行:
/* Trigger: TRG_CFE_ESTOQUE_EXCLUIDO */
CREATE OR ALTER TRIGGER TRG_CFE_ESTOQUE_EXCLUIDO FOR ITENS_CFE
BEFORE DELETE POSITION 1
AS
BEGIN
UPDATE ITENS_CFE
SET ITE_ESTOQUE_PROCESSADO = 'N'
WHERE PRO_CODIGO = OLD.PRO_CODIGO
AND CFE_CODIGO = OLD.CFE_CODIGO;
END
现在,我不是在测试它,只是在寻找一种重现预期行为的方法。
最佳答案
再次搜索,我在PostgreSQL Documentation中找到了一些东西:
如果为同一事件定义了同一类型的多个触发器,则将按名称的字母顺序触发它们
我想它会变魔术的。
但这是最好的方法吗?
关于postgresql - 如何将Firebird的触发器迁移到PostgreSQL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56992042/