Created DELETE script for old data used in a stored procedure
This commit is contained in:
parent
032f0ebba8
commit
3e4eebfb7b
31
misc/delete_data.sql
Normal file
31
misc/delete_data.sql
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
CREATE DEFINER=`ds`@`localhost` PROCEDURE `delete_data`()
|
||||||
|
BEGIN
|
||||||
|
DECLARE shipcall_id_var int;
|
||||||
|
DECLARE done INT DEFAULT FALSE;
|
||||||
|
|
||||||
|
DECLARE shipcall_iter CURSOR FOR
|
||||||
|
SELECT shipcall.id FROM shipcall
|
||||||
|
LEFT JOIN times ON
|
||||||
|
times.shipcall_id = shipcall.id AND times.participant_type = 8
|
||||||
|
WHERE
|
||||||
|
-- ARRIVAL
|
||||||
|
(type = 1 AND GREATEST(shipcall.eta, COALESCE(times.eta_berth, 0)) <= CURRENT_DATE() - INTERVAL 1 MONTH) OR
|
||||||
|
-- DEPARTURE / SHIFTING
|
||||||
|
(type != 1 AND GREATEST(shipcall.etd, COALESCE(times.etd_berth, 0)) <= CURRENT_DATE() - INTERVAL 1 MONTH);
|
||||||
|
|
||||||
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
|
||||||
|
|
||||||
|
OPEN shipcall_iter;
|
||||||
|
|
||||||
|
delete_loop: LOOP
|
||||||
|
FETCH shipcall_iter INTO shipcall_id_var;
|
||||||
|
IF done THEN
|
||||||
|
LEAVE delete_loop;
|
||||||
|
END IF;
|
||||||
|
DELETE FROM shipcall_participant_map WHERE shipcall_id = shipcall_id_var;
|
||||||
|
DELETE FROM shipcall_tug_map WHERE shipcall_id = shipcall_id_var;
|
||||||
|
DELETE FROM times WHERE shipcall_id = shipcall_id_var;
|
||||||
|
DELETE FROM shipcall WHERE id = shipcall_id_var;
|
||||||
|
END LOOP;
|
||||||
|
CLOSE shipcall_iter;
|
||||||
|
END
|
||||||
Loading…
Reference in New Issue
Block a user