postgresql语句触发器怎么获取变化的值
时间: 2024-04-07 16:33:21 浏览: 56
在PostgreSQL中,你可以通过使用NEW和OLD关键字来获取触发器表中发生变化的值。
- NEW关键字表示在INSERT或UPDATE操作中被插入或修改的新行。你可以使用NEW来访问新行的列值。
- OLD关键字表示在UPDATE或DELETE操作中被修改或删除的旧行。你可以使用OLD来访问旧行的列值。
以下是一个示例,展示了如何在触发器函数中使用NEW和OLD关键字来获取变化的值:
```sql
CREATE OR REPLACE FUNCTION my_trigger_function() RETURNS TRIGGER AS $$
BEGIN
-- 获取新行的某个列值
RAISE NOTICE 'New column value: %', NEW.column_name;
-- 获取旧行的某个列值
RAISE NOTICE 'Old column value: %', OLD.column_name;
RETURN NEW; -- 或者你可以返回OLD,或者NULL,取决于你的需求
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER my_trigger
AFTER INSERT OR UPDATE OR DELETE ON your_table
FOR EACH ROW
EXECUTE FUNCTION my_trigger_function();
```
在上面的示例中,`column_name`是你想要访问的具体列名。触发器函数中的`RAISE NOTICE`语句用于在触发器执行时输出相应的值。你可以根据自己的需求修改触发器函数的逻辑和输出内容。
阅读全文