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

自托管产品

MST

约束是适用于数据库列的规则。这可以防止您向数据库输入无效数据。当您创建、更改或删除超表上的约束时,这些约束会传播到底层分块以及任何索引。

超表支持所有标准的 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)
) WITH (
tsdb.hypertable,
tsdb.partition_column='time'
);

如果您正在自托管 TimescaleDB v2.19.3 及更早版本,请创建一个 PostgreSQL 关系表,然后使用 create_hypertable 将其转换。然后通过调用 ALTER TABLE 启用 Hypercore。

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

注意

用于分区的时间列不能允许 NULL 值。如果这些列尚不存在 NOT NULL 约束,则默认会添加该约束。

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

关键词

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