mysql中的存储过程替代,可以改变

时间:2014-03-20 07:19:32

标签: mysql stored-procedures

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工作台

1 个答案:

答案 0 :(得分:0)

使用以下任何一种方法重新定义表结构时

  1. drop column,
  2. 更改列,
  3. 修改列,
  4. 添加列,
  5. 重命名表
  6. 并且您的存储过程依赖于同一个表及其预定义的列, 然后你没有选择,只能重新定义你的存储过程的一部分。

    这只能通过再次删除并重新创建过程来实现。

    根据ALTER PROCEDURE Syntax上的文档,在MySQL中,

      

    但是,您无法使用此语句更改存储过程的参数或主体;要进行此类更改,您必须使用DROP PROCEDURE和CREATE PROCEDURE删除并重新创建该过程。

    add column可能不需要重新构建您的存储过程,除非新列也参与了该过程的算法。