Timescale Cloud:性能、扩展性、企业级

自托管产品

MST

Timescale 支持 PostgreSQL 的全部触发器。在超表上创建、修改或删除触发器会将这些更改传播到底层的所有数据块。

此示例创建一个名为 error_conditions 的新表,其模式与 conditions 相同,但仅存储被视为错误的记录。在此示例中,错误是指应用程序发送的 temperaturehumidity 读数大于或等于 1000 的情况。

  1. 创建一个函数,将错误数据插入到 error_conditions 表中

    CREATE OR REPLACE FUNCTION record_error()
    RETURNS trigger AS $record_error$
    BEGIN
    IF NEW.temperature >= 1000 OR NEW.humidity >= 1000 THEN
    INSERT INTO error_conditions
    VALUES(NEW.time, NEW.location, NEW.temperature, NEW.humidity);
    END IF;
    RETURN NEW;
    END;
    $record_error$ LANGUAGE plpgsql;
  2. 创建一个触发器,在新行插入超表时调用此函数

    CREATE TRIGGER record_error
    BEFORE INSERT ON conditions
    FOR EACH ROW
    EXECUTE PROCEDURE record_error();
  3. 所有数据都插入到 conditions 表中,但包含错误的行也会添加到 error_conditions 表中。

Timescale 支持全部类型的触发器,包括 BEFORE INSERTAFTER INSERTBEFORE UPDATEAFTER UPDATEBEFORE DELETEAFTER DELETE。更多信息,请参阅 PostgreSQL 文档

关键词

本页有任何问题吗?报告问题 或在 GitHub 上编辑此页面