sql - Postgresql 触发器通知

标签 sql postgresql

请帮我改正sql语句:

CREATE TRIGGER transaction_insert
    AFTER INSERT ON transaction
    FOR EACH ROW
    WHEN (NEW.tr_type = 55)
    EXECUTE PROCEDURE pg_notify('check_close', to_char(NEW.n_transaction, 999999));

我需要在添加带有 tr_type=55 的行时收到通知。 tr_typeint。 n_transaction 是 int

PostgreSQL 8.3.4

请帮忙!

最佳答案

尝试以下操作:

CREATE TRIGGER transaction_insert
    AFTER INSERT ON transaction
    FOR EACH ROW EXECUTE PROCEDURE transaction_insert_check_close();


CREATE OR REPLACE FUNCTION transaction_insert_check_close() RETURNS TRIGGER AS $transaction_insert_check_close$
BEGIN
    IF (NEW.tr_type = 55) THEN
        PERFORM pg_notify('check_close', to_char(NEW.n_transaction, 999999));
    END IF;

    RETURN NEW;
END;

$transaction_insert_check_close$ LANGUAGE plpgsql;

关于sql - Postgresql 触发器通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10658286/

相关文章:

sql - Vertica 与 PostgreSQL 不同的计算

sql - TSQL 使用子字符串替换也会替换字符串的其他部分

java - SQL 更新无法正常工作

sql - 从 PostgreSQL 中的 jsonb 数组中获取一个元素

sql - 如何在 Linux 中解析 postgres 的 XML 输出作为 Basex 的输入

mysql - 在我的项目中,我有 x_user_module_perm 表,我需要为其保留一个主键和一个复合主键

MySQL 左连接返回时间太长

python - django.db.utils.IntegrityError : update or delete on table when deleting a record 错误

SQL Postgres - 插入到不存在的地方

django - 使用 PostgresXL 分片现有的 postgresql 数据库