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?.
SELECT * FROM version();
version
PostgreSQL 12.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5), 64-bit
CREATE TABLE user_
(
user_id INTEGER NOT NULL PRIMARY KEY,
user_name VARCHAR (25) NOT NULL
);

INSERT INTO user_ (user_id, user_name)
SELECT 1, 'user_1'
UNION
SELECT 2, 'user_2';



2 rows affected
SELECT * FROM user_ ORDER BY user_id;
user_id user_name
1 user_1
2 user_2
CREATE TABLE message
(
message_id INTEGER NOT NULL PRIMARY KEY,
sender_id INTEGER,
message_text VARCHAR (100) NOT NULL,
FOREIGN KEY (sender_id) REFERENCES user_ (user_id)
);

INSERT INTO message
SELECT 1, 1, 'm1'
UNION
SELECT 2, 1, 'm2'
UNION
SELECT 3, 2, 'm3'
UNION
SELECT 4, 2, 'm4';
4 rows affected
SELECT * FROM message ORDER BY message_id;
message_id sender_id message_text
1 1 m1
2 1 m2
3 2 m3
4 2 m4
INSERT INTO message VALUES (5, 56, 'mxxxx');
ERROR:  insert or update on table "message" violates foreign key constraint "message_sender_id_fkey"
DETAIL:  Key (sender_id)=(56) is not present in table "user_".