约束是应用于数据库列的规则。这可以防止您将无效数据输入到数据库中。当您在超级表上创建、更改或删除约束时,约束会传播到基础数据块以及任何索引。

除了从超级表引用另一个超级表的外键约束之外,超级表支持所有标准的 PostgreSQL 约束类型。

例如,您可以创建一个仅允许正设备 ID 和非空温度读数的表。您还可以检查所有设备的时间值是否唯一。要创建具有约束的此表,请使用以下命令

CREATE TABLE conditions (
time TIMESTAMPTZ
temp FLOAT NOT NULL,
device_id INTEGER CHECK (device_id > 0),
location INTEGER REFERENCES locations (id),
PRIMARY KEY(time, device_id)
);
SELECT create_hypertable('conditions', by_range('time'));
注意

by_range 维度构建器是 TimescaleDB 2.13 的新增功能。

此示例还使用外键约束引用另一个 locations 表中的值。

注意

用于分区的 Time 列不得允许 NULL 值。如果这些列尚不存在 NOT NULL 约束,则默认情况下会添加该约束。

有关如何管理约束的更多信息,请参阅 PostgreSQL 文档

关键词

在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页