Create cycle_notification_history_in_batches.sql

This commit is contained in:
poveyd
2020-05-04 12:18:25 +01:00
committed by GitHub
parent abe2555f31
commit da3b155ae8

View File

@@ -0,0 +1,31 @@
-- Call once at the start of the process
CREATE TABLE notification_history_pivot AS SELECT * from notification_history WHERE 1=2;
SELECT id
INTO nh_temp
FROM notification_history;
SELECT COUNT(*) AS 'Total number of rows in nh' FROM nh_temp;
DELETE FROM nh_temp t
USING notification_history_pivot p
WHERE t.id = p.id;
SELECT COUNT(*) AS 'Number of rows remaining that need moving across from nh to nh_pivot' FROM nh_temp;
-- In each function call, using same database connection as used for the above SQL (needs to be in a transaction; this can be inside a stored function or in a transaction from the code)
INSERT INTO notification_history_pivot
SELECT n.*
FROM notification_history n,
nh_temp t
WHERE n.id = t.id;
DELETE FROM nh_temp t
USING notification_history_pivot p
WHERE t.id = p.id;
SELECT COUNT(*) from nh_temp;
-- Loop until this result is zero.