约束是应用于数据库列的规则。这可以防止您将无效数据输入到数据库中。当您在超级表上创建、更改或删除约束时,约束会传播到基础数据块以及任何索引。
除了从超级表引用另一个超级表的外键约束之外,超级表支持所有标准的 PostgreSQL 约束类型。
例如,您可以创建一个仅允许正设备 ID 和非空温度读数的表。您还可以检查所有设备的时间值是否唯一。要创建具有约束的此表,请使用以下命令
CREATE TABLE conditions (time TIMESTAMPTZtemp 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 上编辑此页。