1.) mysql 中存储过程的替代方案,可以更改而不是删除并再次创建
2.) 维护数据库版本的简单方法我目前正在手动创建 log.sql 文件,例如示例 log.sql 文件
ALTER TABLE `ship`
CHANGE COLUMN `is_deleted` `is_deleted` INT(11) NULL DEFAULT 0 ;
DROP procedure IF EXISTS `get_ship`;
DELIMITER ;;
CREATE PROCEDURE `get_ship`(
)
BEGIN
do something;
end if;
END ;;
DELIMITER ;
有没有更好、更简单的方法来创建这样的sql日志文件, 我已经尝试过 MYSQL Workbench
最佳答案
当您使用以下任何一种方式重新定义表结构时
- 删除列,
- 更改列,
- 修改列,
- 添加列,
- 重命名表格
并且您的存储过程依赖于同一个表及其预定义的列, 那么您别无选择,只能重新定义部分存储过程。
这只能通过删除并重新创建该过程来实现。
根据 ALTER PROCEDURE Syntax
上的文档,在 MySQL 中,
However, you cannot change the parameters or body of a stored procedure using this statement; to make such changes, you must drop and re-create the procedure using DROP PROCEDURE and CREATE PROCEDURE.
添加列
可能不需要重新构建存储过程,除非新列也参与该过程的算法。
关于mysql - mysql 中的存储过程替代方案可以更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22526041/