sqlx-record/sqlx-record-ctl/scripts/drop-tables.down.sql

36 lines
730 B
SQL

DELIMITER $$
CREATE PROCEDURE DropEntityChangeTables()
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE table_name VARCHAR(255);
DECLARE drop_stmt VARCHAR(512);
DECLARE cur CURSOR FOR
SELECT CONCAT('DROP TABLE IF EXISTS entity_changes_', table_name)
FROM entity_changes_metadata
WHERE is_auditable = TRUE;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN cur;
read_loop: LOOP
FETCH cur INTO drop_stmt;
IF done THEN
LEAVE read_loop;
END IF;
SET @s = drop_stmt;
PREPARE stmt FROM @s;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END LOOP;
CLOSE cur;
END$$
DELIMITER ;
CALL DropEntityChangeTables();