mirror of
https://git.meshkee.com/BaloutPastry/backend.git
synced 2026-08-11 22:31:00 +04:30
28 lines
818 B
SQL
28 lines
818 B
SQL
-- Renumber existing low order numbers to start at 1000, then seed the sequence.
|
|
DO $$
|
|
DECLARE
|
|
seq_name text;
|
|
seed bigint;
|
|
r record;
|
|
i integer := 0;
|
|
BEGIN
|
|
-- Move current numbers out of the way to avoid unique collisions
|
|
UPDATE "Order" SET number = number + 1000000 WHERE number < 1000;
|
|
|
|
-- Assign contiguous numbers from 1000 for any that were shifted
|
|
FOR r IN
|
|
SELECT id FROM "Order" WHERE number >= 1000000 ORDER BY number ASC
|
|
LOOP
|
|
UPDATE "Order" SET number = 1000 + i WHERE id = r.id;
|
|
i := i + 1;
|
|
END LOOP;
|
|
|
|
seq_name := pg_get_serial_sequence('"Order"', 'number');
|
|
IF seq_name IS NULL THEN
|
|
RAISE EXCEPTION 'Order.number sequence not found';
|
|
END IF;
|
|
|
|
SELECT GREATEST(999, COALESCE(MAX(number), 999)) INTO seed FROM "Order";
|
|
PERFORM setval(seq_name, seed, true);
|
|
END $$;
|