Timescale Cloud:性能、扩展性、企业级
自托管产品
MST
Timescale 支持 PostgreSQL 的全部触发器。在超表上创建、修改或删除触发器会将这些更改传播到底层的所有数据块。
此示例创建一个名为 error_conditions
的新表,其模式与 conditions
相同,但仅存储被视为错误的记录。在此示例中,错误是指应用程序发送的 temperature
或 humidity
读数大于或等于 1000 的情况。
创建一个函数,将错误数据插入到
error_conditions
表中CREATE OR REPLACE FUNCTION record_error()RETURNS trigger AS $record_error$BEGINIF NEW.temperature >= 1000 OR NEW.humidity >= 1000 THENINSERT INTO error_conditionsVALUES(NEW.time, NEW.location, NEW.temperature, NEW.humidity);END IF;RETURN NEW;END;$record_error$ LANGUAGE plpgsql;创建一个触发器,在新行插入超表时调用此函数
CREATE TRIGGER record_errorBEFORE INSERT ON conditionsFOR EACH ROWEXECUTE PROCEDURE record_error();所有数据都插入到
conditions
表中,但包含错误的行也会添加到error_conditions
表中。
Timescale 支持全部类型的触发器,包括 BEFORE INSERT
、AFTER INSERT
、BEFORE UPDATE
、AFTER UPDATE
、BEFORE DELETE
和 AFTER DELETE
。更多信息,请参阅 PostgreSQL 文档。
关键词