add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
Help with an interesting Postgres question: Why isn't an Index Only Scan used on a partition accessed via the parent table?.
CREATE TABLE parent (
id TEXT PRIMARY KEY,
name TEXT,
created_at TIMESTAMPTZ DEFAULT NOW() NOT NULL,
updated_at TIMESTAMPTZ DEFAULT NOW() NOT NULL
);
INSERT INTO parent (id, name) VALUES (1, 'name 1'), (2, 'name 2');
CREATE TABLE
INSERT 0 2
CREATE TABLE child_n (
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
parent_id TEXT NOT NULL REFERENCES parent (id) ON DELETE CASCADE
);
INSERT INTO child_n (id, parent_id) VALUES (1,1), (2,2), (3,1), (4,2);
CREATE TABLE
INSERT 0 4
SELECT * FROM parent;
SELECT * FROM child_n;
id name created_at updated_at
1 name 1 2023-12-18 12:43:14.303489+00 2023-12-18 12:43:14.303489+00
2 name 2 2023-12-18 12:43:14.303489+00 2023-12-18 12:43:14.303489+00
SELECT 2
id parent_id
1 1
2 2
3 1
4 2
SELECT 4
WITH cte AS ( DELETE
FROM parent
WHERE id = '1'
RETURNING * )
INSERT INTO parent
SELECT *
FROM cte;
INSERT 0 1
SELECT * FROM parent;
SELECT * FROM child_n;
id name created_at updated_at
2 name 2 2023-12-18 12:43:14.303489+00 2023-12-18 12:43:14.303489+00
1 name 1 2023-12-18 12:43:14.303489+00 2023-12-18 12:43:14.303489+00
SELECT 2
id parent_id
2 2
4 2
SELECT 2