Temporal constraints
Recorded source states and original language descriptions. Missing version evidence stays unknown.
The source snapshot records transitions for PostgreSQL 8.1–18. The historical matrix records independent cells for 7.4–18. Neither records support for PostgreSQL 19 or 20; newer versions remain unknown. These source claims are distinct from runtime measurements.
Data Definition Language (DDL)
Description
Temporal constraints are constraints over ranges. These are available for both PRIMARY KEY and UNIQUE constraints using the WITHOUT OVERLAPS clause, and FOREIGN KEY constraints using the PERIOD clause.
Selected version: PostgreSQL 18
Yes
Compare versions
Original documentation links
Complete source facts and provenance
yaml · center · 1dd22bf9a7f3ec325b894e2836fda535a25529f246a94dd41d6abbfe9997f7fd
{
"Key": "temporal-constraints",
"SourceKind": "yaml",
"SourceDatabase": "center",
"SourceTable": "featurematrix.yaml",
"SourceKey": "Temporal constraints",
"SourceHash": "1dd22bf9a7f3ec325b894e2836fda535a25529f246a94dd41d6abbfe9997f7fd",
"Name": "Temporal constraints",
"NameLocale": "en",
"GroupKey": "data-definition-language-ddl",
"GroupName": "Data Definition Language (DDL)",
"GroupLocale": "en",
"Ordinal": 11,
"GroupOrder": 4,
"Facts": {
"feature": {
"description": "Temporal constraints are constraints over ranges. These are available for both [`PRIMARY KEY`](https://www.postgresql.org/docs/18/sql-createtable.html#SQL-CREATETABLE-PARMS-PRIMARY-KEY) and [`UNIQUE`](https://www.postgresql.org/docs/18/sql-createtable.html#SQL-CREATETABLE-PARMS-UNIQUE) constraints using the `WITHOUT OVERLAPS` clause, and [`FOREIGN KEY`](https://www.postgresql.org/docs/18/sql-createtable.html#SQL-CREATETABLE-PARMS-REFERENCES) constraints using the `PERIOD` clause.",
"name": "Temporal constraints",
"versions": {
"18": "Yes"
}
},
"group": "Data Definition Language (DDL)",
"versions": {
"max": 18,
"min": 8.1
}
},
"Cells": [
{
"Version": "10",
"State": "no",
"EvidenceKind": "yaml-default-no",
"TransitionVersion": "",
"Supported": false,
"Original": "No"
},
{
"Version": "11",
"State": "no",
"EvidenceKind": "yaml-default-no",
"TransitionVersion": "",
"Supported": false,
"Original": "No"
},
{
"Version": "12",
"State": "no",
"EvidenceKind": "yaml-default-no",
"TransitionVersion": "",
"Supported": false,
"Original": "No"
},
{
"Version": "13",
"State": "no",
"EvidenceKind": "yaml-default-no",
"TransitionVersion": "",
"Supported": false,
"Original": "No"
},
{
"Version": "14",
"State": "no",
"EvidenceKind": "yaml-default-no",
"TransitionVersion": "",
"Supported": false,
"Original": "No"
},
{
"Version": "15",
"State": "no",
"EvidenceKind": "yaml-default-no",
"TransitionVersion": "",
"Supported": false,
"Original": "No"
},
{
"Version": "16",
"State": "no",
"EvidenceKind": "yaml-default-no",
"TransitionVersion": "",
"Supported": false,
"Original": "No"
},
{
"Version": "17",
"State": "no",
"EvidenceKind": "yaml-default-no",
"TransitionVersion": "",
"Supported": false,
"Original": "No"
},
{
"Version": "18",
"State": "yes",
"EvidenceKind": "yaml-transition",
"TransitionVersion": "18",
"Supported": true,
"Original": "Yes"
},
{
"Version": "8.1",
"State": "no",
"EvidenceKind": "yaml-default-no",
"TransitionVersion": "",
"Supported": false,
"Original": "No"
},
{
"Version": "8.2",
"State": "no",
"EvidenceKind": "yaml-default-no",
"TransitionVersion": "",
"Supported": false,
"Original": "No"
},
{
"Version": "8.3",
"State": "no",
"EvidenceKind": "yaml-default-no",
"TransitionVersion": "",
"Supported": false,
"Original": "No"
},
{
"Version": "8.4",
"State": "no",
"EvidenceKind": "yaml-default-no",
"TransitionVersion": "",
"Supported": false,
"Original": "No"
},
{
"Version": "9.0",
"State": "no",
"EvidenceKind": "yaml-default-no",
"TransitionVersion": "",
"Supported": false,
"Original": "No"
},
{
"Version": "9.1",
"State": "no",
"EvidenceKind": "yaml-default-no",
"TransitionVersion": "",
"Supported": false,
"Original": "No"
},
{
"Version": "9.2",
"State": "no",
"EvidenceKind": "yaml-default-no",
"TransitionVersion": "",
"Supported": false,
"Original": "No"
},
{
"Version": "9.3",
"State": "no",
"EvidenceKind": "yaml-default-no",
"TransitionVersion": "",
"Supported": false,
"Original": "No"
},
{
"Version": "9.4",
"State": "no",
"EvidenceKind": "yaml-default-no",
"TransitionVersion": "",
"Supported": false,
"Original": "No"
},
{
"Version": "9.5",
"State": "no",
"EvidenceKind": "yaml-default-no",
"TransitionVersion": "",
"Supported": false,
"Original": "No"
},
{
"Version": "9.6",
"State": "no",
"EvidenceKind": "yaml-default-no",
"TransitionVersion": "",
"Supported": false,
"Original": "No"
}
],
"Texts": [
{
"Locale": "en",
"Title": "Temporal constraints",
"BodyHTML": "\u003cp\u003eTemporal constraints are constraints over ranges. These are available for both \u003ca href=\"https://www.postgresql.org/docs/18/sql-createtable.html#SQL-CREATETABLE-PARMS-PRIMARY-KEY\" rel=\"nofollow\"\u003e\u003ccode\u003ePRIMARY KEY\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://www.postgresql.org/docs/18/sql-createtable.html#SQL-CREATETABLE-PARMS-UNIQUE\" rel=\"nofollow\"\u003e\u003ccode\u003eUNIQUE\u003c/code\u003e\u003c/a\u003e constraints using the \u003ccode\u003eWITHOUT OVERLAPS\u003c/code\u003e clause, and \u003ca href=\"https://www.postgresql.org/docs/18/sql-createtable.html#SQL-CREATETABLE-PARMS-REFERENCES\" rel=\"nofollow\"\u003e\u003ccode\u003eFOREIGN KEY\u003c/code\u003e\u003c/a\u003e constraints using the \u003ccode\u003ePERIOD\u003c/code\u003e clause.\u003c/p\u003e\n",
"SourceHash": "1dd22bf9a7f3ec325b894e2836fda535a25529f246a94dd41d6abbfe9997f7fd",
"ContentHash": "cd3f46fb7de40f7092542abd3c7389ac0b66918bd1bb2ced9760468ec8432713",
"Payload": {
"description": "Temporal constraints are constraints over ranges. These are available for both [`PRIMARY KEY`](https://www.postgresql.org/docs/18/sql-createtable.html#SQL-CREATETABLE-PARMS-PRIMARY-KEY) and [`UNIQUE`](https://www.postgresql.org/docs/18/sql-createtable.html#SQL-CREATETABLE-PARMS-UNIQUE) constraints using the `WITHOUT OVERLAPS` clause, and [`FOREIGN KEY`](https://www.postgresql.org/docs/18/sql-createtable.html#SQL-CREATETABLE-PARMS-REFERENCES) constraints using the `PERIOD` clause.",
"name": "Temporal constraints",
"versions": {
"18": "Yes"
}
}
},
{
"Locale": "zh-Hans",
"Title": "时态约束",
"BodyHTML": "\u003cp\u003e时态约束是作用于时间范围的约束,既可用于 \u003ccode\u003ePRIMARY KEY\u003c/code\u003e,也可用于 \u003ccode\u003eUNIQUE\u003c/code\u003e 约束。\u003c/p\u003e\n",
"SourceHash": "071091951021357a5f492adb04caed6febf4d315ac2626ca027a48dd8ec01d50",
"ContentHash": "ffc64e5a1785144dedd75c0ec54a0b4a491160688161401519690d40b90a2ee0",
"Payload": {
"description": "时态约束是作用于时间范围的约束,既可用于 `PRIMARY KEY`,也可用于 `UNIQUE` 约束。",
"name": "时态约束"
}
}
],
"GroupTitles": {
"en": "Data Definition Language (DDL)",
"zh-Hans": "数据定义语言 (DDL)"
}
}