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 sequence n_id;
CREATE TABLE IF NOT EXISTS currency
(
id INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
name VARCHAR(30) UNIQUE NOT NULL,
symbol VARCHAR(10) UNIQUE NOT NULL
);
CREATE TABLE IF NOT EXISTS stable (id INT default nextval('n_id') PRIMARY KEY) INHERITS (currency);
CREATE TABLE IF NOT EXISTS crypto (id INT default nextval('n_id') PRIMARY KEY) INHERITS (currency);
CREATE SEQUENCE
CREATE TABLE
CREATE TABLE
CREATE TABLE
INSERT INTO stable (name, symbol) VALUES ('Euro', '€'), ('Dollar', '$'), ('Tether', 'USDT');
INSERT INTO crypto (name, symbol) VALUES ('Bitcoin', 'BTC'), ('Ethereum', 'ETH'), ('Litcoin', 'LTC');
INSERT 0 3
INSERT 0 3
SELECT * FROM stable
UNION ALL
SELECT * FROM crypto
id | name | symbol |
---|---|---|
1 | Euro | € |
2 | Dollar | $ |
3 | Tether | USDT |
4 | Bitcoin | BTC |
5 | Ethereum | ETH |
6 | Litcoin | LTC |
SELECT 6