我的 PostgreSQL 中有一些存储函数和触发器。例如:
CREATE OR REPLACE FUNCTION log_function() RETURNS TRIGGER AS $logger$
BEGIN
IF (TG_OP = 'DELETE') THEN
INSERT INTO logger SELECT 'D', now(), user, OLD.*;
RETURN OLD;
END IF;
RETURN NULL;
END;
$logger$ LANGUAGE plpgsql;
并触发:
CREATE TRIGGER logging_trigger
AFTER INSERT OR UPDATE OR DELETE ON some_entity
FOR EACH ROW EXECUTE PROCEDURE log_function();
我想在每次部署后导入此代码。(我有<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
)
我认为函数是不可能的,因为它的 plpgsql,但对于触发器来说它会很棒。我一直在尝试向 import.sql 添加触发器,但我得到了org.postgresql.util.PSQLException: ERROR: syntax error at end of input
而且我不想将此代码移动到 Java 级别。
有任何想法吗?