Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- BEGIN;
- CREATE TEMPORARY TABLE old_table (
- id integer NOT NULL PRIMARY KEY,
- a varchar NOT NULL,
- b varchar NOT NULL,
- c varchar NOT NULL,
- abc_id integer NOT NULL DEFAULT -1
- )
- ON COMMIT DROP;
- CREATE TEMPORARY TABLE new_table (
- id integer NOT NULL PRIMARY KEY,
- a varchar NOT NULL,
- b varchar NOT NULL,
- c varchar NOT NULL,
- UNIQUE(a, b, c)
- )
- ON COMMIT DROP;
- CREATE TEMPORARY TABLE new_table_temp (
- LIKE new_table INCLUDING ALL,
- old_ids integer[]
- )
- ON COMMIT DROP;
- EXPLAIN WITH ins AS (
- INSERT INTO new_table (a, b, c)
- SELECT DISTINCT a, b, c
- FROM old_table
- RETURNING *
- )
- UPDATE old_table
- SET abc_id = ins.id
- FROM ins
- WHERE
- ins.a = old_table.a
- AND ins.b = old_table.b
- AND ins.c = old_table.c;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement