別のストアドプロシージャ内からストアドプロシージャを作成する方法はありますか?MySQL別のストアドプロシージャ内でストアドプロシージャを作成する
私たちは、テーブル内のデータベースのバージョンをチェックし、一時的なストアドプロシージャを使用して、データベースの更新を処理している:
DELIMITER #
DROP PROCEDURE IF EXISTS sp_temp_update_table#
CREATE PROCEDURE sp_temp_update_table()
BEGIN
DECLARE v_db_version DECIMAL(10,6);
SELECT CAST(`value` AS DECIMAL(10,6)) INTO v_db_version
FROM `db_metadata` meta
WHERE meta.`key` = 'db_version';
IF(v_db_version < CAST('13.30' AS DECIMAL(10,6))) THEN
-- UPDATE STATEMENTS HERE
ALTER TABLE `foo` ADD COLUMN `bar` INT(10);
UPDATE `etl_metadata` SET `value` = '13.30' WHERE `key` = 'db_version';
SELECT CONCAT('13.30 Update Applied - Original db_version=', v_db_version);
ELSE
SELECT '13.30 Update Not Needed';
END IF;
END#
CALL sp_temp_update_table()#
DROP PROCEDURE IF EXISTS sp_temp_update_table#
DELIMITER ;
は、今、私たちは、このプロシージャ内からストアドプロシージャを更新する必要があります。
MySQLでこれを実現する方法はありますか?