By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE
INSERT 0 4
CREATE TABLE
| a | b | d |
|---|---|---|
| null | null | 2025-03-05 |
| a | null | 2025-03-05 |
| null | b | 2025-03-05 |
| c | b | 2025-03-05 |
SELECT 4
| id | ref_a | ref_b |
|---|
SELECT 0
ALTER TABLE
INSERT 0 1
INSERT 0 1
| a | b | d |
|---|---|---|
| null | null | 2025-03-05 |
| a | null | 2025-03-05 |
| null | b | 2025-03-05 |
| c | b | 2025-03-05 |
SELECT 4
| id | ref_a | ref_b |
|---|---|---|
| 1 | null | b |
| 2 | null | x |
SELECT 2
ERROR: MATCH PARTIAL not yet implemented LINE 2: ...B_Fk FOREIGN KEY (ref_a, ref_b) REFERENCES A(a,b) MATCH PART... ^
DELETE 2
ALTER TABLE
ALTER TABLE
ERROR: insert or update on table "b" violates foreign key constraint "b_fk" DETAIL: MATCH FULL does not allow mixing of null and nonnull key values.
INSERT 0 1
| a | b | d |
|---|---|---|
| null | null | 2025-03-05 |
| a | null | 2025-03-05 |
| null | b | 2025-03-05 |
| c | b | 2025-03-05 |
SELECT 4
| id | ref_a | ref_b |
|---|---|---|
| 1 | null | null |
SELECT 1