~/talk

What's new with constraints in Postgres 18

Talkat POSETTE: An Event for Postgres 2026 · 2026-06-16..06-18· [databases]
slides:none on file

Postgres 18 adds concrete, usable features: temporal keys WITHOUT OVERLAPS lets a composite key include a range/multirange (GiST + gist_range_ops) to prevent overlapping validity periods for bookings or salaries; temporal foreign keys use PERIOD ... DURING to require referenced rows cover the referencing period (ON UPDATE/DELETE cascades not yet supported). NOT ENFORCED records constraints in pg_constraint without creating triggers or validating existing rows, and NOT NULL as a first-class constraint adds convalidated/conenforced flags and partition-aware NOT VALID handling.

AI-written summary · about

  1. 0:00Music & introduction
  2. 0:37Agenda: temporal keys and constraint changes
  3. 1:14What constraints are and why they matter
  4. 3:50Overview of Postgres 18 constraint updates
  5. 4:56Understanding temporal databases and time models
  6. 7:04Semantics of time: valid time vs transaction time explained
  7. 9:34Temporal queries and data modeling shift
  8. 11:22Temporal primary keys and no-overlap rules
  9. 12:50Booking example with temporal constraints
  10. 15:41Temporal foreign keys and referential integrity
  11. 17:50NOT ENFORCED constraints and schema flexibility
  12. 21:26NOT NULL as a first-class constraint
  13. 24:45Partition table improvements and wrap-up
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.