↑↓ select↵ open⌫ change scopeOpen full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

Wiki / Versions

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

20191817161514131211109.69.59.49.39.29.19.08.48.38.28.18.07.4
UnknownUnknownYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoUnknownUnknown

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"
  ]
}

Complete source data JSON