Triggers

自动在指定表上、在 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();

Extensions

PostgreSQL 提供的可选模块(plugin),安装后即扩展核心功能。

-- 安装
CREATE EXTENSION IF NOT EXISTS extension_name;

常见扩展