By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE
CREATE EXTENSION
ALTER TABLE
ALTER TABLE
INSERT 0 2
ERROR: conflicting key value violates exclusion constraint "one_valid_otp_per_purpose_at_a_time" DETAIL: Key (purpose, valid_between)=(1, ["2025-06-18 12:57:38.531808+00","2025-06-18 12:57:43.531808+00")) conflicts with existing key (purpose, valid_between)=(1, ["2025-06-18 12:57:37.530795+00","2025-06-18 12:57:42.530795+00")).
BEGIN
CREATE VIEW
| now |
|---|
| 2025-06-18 12:57:37.532268+00 |
SELECT 1
| purpose | valid_between | is_expired |
|---|---|---|
| 1 | ["2025-06-18 12:57:37.530795+00","2025-06-18 12:57:42.530795+00") | f |
| 2 | ["2025-06-18 12:57:37.530795+00","2025-06-18 12:57:42.530795+00") | f |
SELECT 2
COMMIT
BEGIN
| pg_sleep |
|---|
SELECT 1
COMMIT
| now |
|---|
| 2025-06-18 12:57:43.539171+00 |
SELECT 1
| purpose | valid_between | is_expired |
|---|---|---|
| 1 | ["2025-06-18 12:57:37.530795+00","2025-06-18 12:57:42.530795+00") | t |
| 2 | ["2025-06-18 12:57:37.530795+00","2025-06-18 12:57:42.530795+00") | t |
SELECT 2