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 fruits(
id serial PRIMARY KEY
, name varchar NOT NULL UNIQUE -- !
);

-- trigger function
CREATE FUNCTION trg_next_id_on_update()
RETURNS trigger
LANGUAGE plpgsql AS
$func$
BEGIN
NEW.id := nextval(pg_get_serial_sequence('fruits', 'id'));
RETURN NEW;
END
$func$;

-- trigger
CREATE TRIGGER next_id_on_update
BEFORE UPDATE ON fruits
FOR EACH ROW
WHEN (NEW.name <> OLD.name)
EXECUTE PROCEDURE trg_next_id_on_update();
CREATE TABLE
CREATE FUNCTION
CREATE TRIGGER
INSERT INTO fruits(name) VALUES('Orange');
INSERT INTO fruits(id,name) VALUES(DEFAULT,'Apple');

TABLE fruits;
INSERT 0 1
INSERT 0 1
id name
1 Orange
2 Apple
SELECT 2
UPDATE fruits
SET name = 'Orange2'
WHERE name = 'Orange';
UPDATE 1
TABLE fruits;
id name
2 Apple
3 Orange2
SELECT 2