可重复执行的 update sql 语句

做升级的时候需要对数据库进行升级且要求可重复执行,如果我们升级是新加一个数据库字段,执行第二次肯定会报错,可利用下面方法实现可重复执行升级sql。

 

delimiter //
DROP PROCEDURE IF EXISTS `updatePrivateMsgBox`;
CREATE PROCEDURE `updatePrivateMsgBox`()
NOT DETERMINISTIC
BEGIN
  DECLARE CONTINUE HANDLER FOR SQLEXCEPTION begin end;
 alter table T_PRIVATEMSGBOX add ( SENDCOUNT int default NULL);
END;
CALL updatePrivateMsgBox;

 

关于delimiter的解释:

  MySQL中delimit命令。  这个命令与存储过程没什么关系。  其实就是告诉 mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。  即改变输入结束符。  默认情况下,delimiter是分号“ ;”。  在命令行客户端中,如果有一行命令以分号结束,  那么回车后,mysql将会执行该命令。  但有时候,不希望MySQL这么做。因为可能输入较多的语句,且语句中包含有分号。  默认情况下,不可能等到用户把这些语句全部输入完之后,再执行整段语句。  因为mysql一遇到分号,它就要自动执行。  这种情况下,就可以使用delimiter,把delimiter后面换成其它符号,如//或$$。  此时,delimiter作用就是对整个小段语句做一个简单的封装。  此命令多用在定义子程序,触发程序等musql自己内嵌小程序中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值