Created
September 25, 2018 07:18
-
-
Save basz/16cc9230f4d049cc318508b60d70cfc9 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| -- DROP CONSTRAINT FIRST | |
| ALTER TABLE _7794a224f85453058cf637d52e7c4487568a8271 DROP CONSTRAINT _7794a224f85453058cf637d52e7c4487568a8271_pkey; | |
| -- DROP EXISTING SEQUENCE | |
| DROP SEQUENCE _7794a224f85453058cf637d52e7c4487568a8271_no_seq CASCADE; | |
| -- CREATE AN ORDERED VIEW | |
| CREATE VIEW ordered_view AS SELECT * FROM _7794a224f85453058cf637d52e7c4487568a8271 ORDER BY created_at ASC FOR UPDATE; | |
| -- CREATE A RULE FOR UPDATE | |
| CREATE RULE rule_order AS ON UPDATE TO ordered_view DO INSTEAD | |
| UPDATE _7794a224f85453058cf637d52e7c4487568a8271 | |
| SET no = NEW.no | |
| WHERE event_id = NEW.event_id; | |
| -- CREATE A NEW SEQUENCE | |
| CREATE SEQUENCE ordered_view_seq; | |
| -- EXECUTE AN UPDATE - WHICH IS APPEARENTLY DONE IN IN PARRALEL AS THE NO COLUMN IS NOT INCREMENTAL... | |
| UPDATE ordered_view SET no = nextval('ordered_view_seq'); | |
| -- CLEANUP | |
| DROP SEQUENCE ordered_view_seq; | |
| DROP RULE rule_order ON ordered_view; | |
| DROP VIEW ordered_view; | |
| -- RECREATE CONSTRAINT AND SEQUENCE | |
| BEGIN; | |
| ALTER TABLE api_dev.public._7794a224f85453058cf637d52e7c4487568a8271 ADD PRIMARY KEY (no); | |
| CREATE SEQUENCE _7794a224f85453058cf637d52e7c4487568a8271_no_seq; | |
| SELECT setval('_7794a224f85453058cf637d52e7c4487568a8271_no_seq', max(no)) FROM _7794a224f85453058cf637d52e7c4487568a8271; | |
| END; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment