Я перевожу всю базу данных из Firebird в PostgreSQL, и это не ракетостроение.Но у меня серьезные проблемы с триггерами.Особенно аргумент POSITION в Firebird.
На самом деле, я ищу поведение POSITION.Мне это нужно, но в PostgreSQL.
Это триггеры в Firebird:
Этот триггер должен быть выполнен первым:
/* 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
Пока я не проверяю его, а просто ищу способ воспроизвести ожидаемое поведение.