Foreign keys marked as NOT VALID
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.
Performance
Description
This introduces a new option to the creation of foreign keys called NOT VALID, which can later be modified to VALIDATED and validation checks performed. Together these allow you to add a foreign key with minimal impact on read and write operations.
Selected version: PostgreSQL 18
Yes
Compare versions
Original documentation links
Recorded legacy identifiers: 214
Complete source facts and provenance
yaml · center · 1dd22bf9a7f3ec325b894e2836fda535a25529f246a94dd41d6abbfe9997f7fd
{
"Key": "foreign-keys-marked-as-not-valid",
"SourceKind": "yaml",
"SourceDatabase": "center",
"SourceTable": "featurematrix.yaml",
"SourceKey": "Foreign keys marked as NOT VALID",
"SourceHash": "1dd22bf9a7f3ec325b894e2836fda535a25529f246a94dd41d6abbfe9997f7fd",
"Name": "Foreign keys marked as NOT VALID",
"NameLocale": "en",
"GroupKey": "performance",
"GroupName": "Performance",
"GroupLocale": "en",
"Ordinal": 12,
"GroupOrder": 5,
"Facts": {
"feature": {
"description": "This introduces a new option to the creation of foreign keys called NOT VALID, which can later be modified to VALIDATED and validation checks performed. Together these allow you to add a foreign key with minimal impact on read and write operations.",
"name": "Foreign keys marked as NOT VALID",
"versions": {
"9.1": "Yes"
}
},
"group": "Performance",
"versions": {
"max": 18,
"min": 8.1
}
},
"Cells": [
{
"Version": "10",
"State": "yes",
"EvidenceKind": "yaml-transition",
"TransitionVersion": "9.1",
"Supported": true,
"Original": "Yes"
},
{
"Version": "11",
"State": "yes",
"EvidenceKind": "yaml-transition",
"TransitionVersion": "9.1",
"Supported": true,
"Original": "Yes"
},
{
"Version": "12",
"State": "yes",
"EvidenceKind": "yaml-transition",
"TransitionVersion": "9.1",
"Supported": true,
"Original": "Yes"
},
{
"Version": "13",
"State": "yes",
"EvidenceKind": "yaml-transition",
"TransitionVersion": "9.1",
"Supported": true,
"Original": "Yes"
},
{
"Version": "14",
"State": "yes",
"EvidenceKind": "yaml-transition",
"TransitionVersion": "9.1",
"Supported": true,
"Original": "Yes"
},
{
"Version": "15",
"State": "yes",
"EvidenceKind": "yaml-transition",
"TransitionVersion": "9.1",
"Supported": true,
"Original": "Yes"
},
{
"Version": "16",
"State": "yes",
"EvidenceKind": "yaml-transition",
"TransitionVersion": "9.1",
"Supported": true,
"Original": "Yes"
},
{
"Version": "17",
"State": "yes",
"EvidenceKind": "yaml-transition",
"TransitionVersion": "9.1",
"Supported": true,
"Original": "Yes"
},
{
"Version": "18",
"State": "yes",
"EvidenceKind": "yaml-transition",
"TransitionVersion": "9.1",
"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": "yes",
"EvidenceKind": "yaml-transition",
"TransitionVersion": "9.1",
"Supported": true,
"Original": "Yes"
},
{
"Version": "9.2",
"State": "yes",
"EvidenceKind": "yaml-transition",
"TransitionVersion": "9.1",
"Supported": true,
"Original": "Yes"
},
{
"Version": "9.3",
"State": "yes",
"EvidenceKind": "yaml-transition",
"TransitionVersion": "9.1",
"Supported": true,
"Original": "Yes"
},
{
"Version": "9.4",
"State": "yes",
"EvidenceKind": "yaml-transition",
"TransitionVersion": "9.1",
"Supported": true,
"Original": "Yes"
},
{
"Version": "9.5",
"State": "yes",
"EvidenceKind": "yaml-transition",
"TransitionVersion": "9.1",
"Supported": true,
"Original": "Yes"
},
{
"Version": "9.6",
"State": "yes",
"EvidenceKind": "yaml-transition",
"TransitionVersion": "9.1",
"Supported": true,
"Original": "Yes"
}
],
"Texts": [
{
"Locale": "en",
"Title": "Foreign keys marked as NOT VALID",
"BodyHTML": "\u003cp\u003eThis introduces a new option to the creation of foreign keys called NOT VALID, which can later be modified to VALIDATED and validation checks performed. Together these allow you to add a foreign key with minimal impact on read and write operations.\u003c/p\u003e\n",
"SourceHash": "1dd22bf9a7f3ec325b894e2836fda535a25529f246a94dd41d6abbfe9997f7fd",
"ContentHash": "3c51c4acb759e1e8a6e47c31b6067871531f310e051b9db99d2fb0386919d3dc",
"Payload": {
"description": "This introduces a new option to the creation of foreign keys called NOT VALID, which can later be modified to VALIDATED and validation checks performed. Together these allow you to add a foreign key with minimal impact on read and write operations.",
"name": "Foreign keys marked as NOT VALID",
"versions": {
"9.1": "Yes"
}
}
},
{
"Locale": "zh-Hans",
"Title": "标记为 NOT VALID 的外键",
"BodyHTML": "\u003cp\u003e引入了创建外键时的新选项 NOT VALID,之后可以修改为 VALIDATED 并执行验证检查。这使得你可以在对读写操作影响最小的情况下添加外键。\u003c/p\u003e\n",
"SourceHash": "071091951021357a5f492adb04caed6febf4d315ac2626ca027a48dd8ec01d50",
"ContentHash": "4a76a201e77536a4f9683da49e9d8cc61b3bc94d3a5501805145e5cb07c479b1",
"Payload": {
"description": "引入了创建外键时的新选项 NOT VALID,之后可以修改为 VALIDATED 并执行验证检查。这使得你可以在对读写操作影响最小的情况下添加外键。",
"name": "标记为 NOT VALID 的外键"
}
}
],
"GroupTitles": {
"en": "Performance",
"zh-Hans": "性能"
},
"LegacyIDs": [
"214"
]
}