自动在指定表上、在 INSERT
/UPDATE
/DELETE
之前或之后执行自定义函数。
-- 定义触发函数
CREATE FUNCTION update_last_msg_ts() RETURNS trigger AS $$
BEGIN
UPDATE conversations
SET last_message_at = now()
WHERE id = NEW.conversation_id;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
-- 创建触发器
CREATE TRIGGER trg_update_last_msg
AFTER INSERT ON messages
FOR EACH ROW
EXECUTE PROCEDURE update_last_msg_ts();
PostgreSQL 提供的可选模块(plugin),安装后即扩展核心功能。
-- 安装
CREATE EXTENSION IF NOT EXISTS extension_name;
常见扩展
pgcrypto
:加密/解密函数hstore
:键值对存储postgis
:地理空间citext
:大小写不敏感字符类型