Advertisement
Guest User

Untitled

a guest
Jun 9th, 2016
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.79 KB | None | 0 0
  1. BEGIN;
  2.  
  3. CREATE TEMPORARY TABLE old_table (
  4. id integer NOT NULL PRIMARY KEY,
  5. a varchar NOT NULL,
  6. b varchar NOT NULL,
  7. c varchar NOT NULL,
  8. abc_id integer NOT NULL DEFAULT -1
  9. )
  10. ON COMMIT DROP;
  11.  
  12. CREATE TEMPORARY TABLE new_table (
  13. id integer NOT NULL PRIMARY KEY,
  14. a varchar NOT NULL,
  15. b varchar NOT NULL,
  16. c varchar NOT NULL,
  17. UNIQUE(a, b, c)
  18. )
  19. ON COMMIT DROP;
  20.  
  21. CREATE TEMPORARY TABLE new_table_temp (
  22. LIKE new_table INCLUDING ALL,
  23. old_ids integer[]
  24. )
  25. ON COMMIT DROP;
  26.  
  27. EXPLAIN WITH ins AS (
  28. INSERT INTO new_table (a, b, c)
  29. SELECT DISTINCT a, b, c
  30. FROM old_table
  31. RETURNING *
  32. )
  33. UPDATE old_table
  34. SET abc_id = ins.id
  35. FROM ins
  36. WHERE
  37. ins.a = old_table.a
  38. AND ins.b = old_table.b
  39. AND ins.c = old_table.c;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement