Mysql - 增量脚本中修改字段属性
2018-06-18 00:40:30来源:未知 阅读 ()
在增量部署系统的时候, 经常需要提供增量修改的脚本, 如果是修改存储过程或者自定义函数, 那还是很好改的, 不用担心表功能收到影响.
如果是改字段呢?
首先不知道字段是不是已经在系统里面, 没有的话, 需要新增上去, 有的话, 需不需要修改?
其次, 脚本如果报错, 是否会重复执行一下脚本? 会不会导致别的问题呢? 看脚本里面执行结果报了好多错, 总觉得, 会被运维鄙视一遍. 做开发的, 真受不了别人鄙视自己的东西.
直接用sql去新增, 修改字段, 好像不太行, 经常会有问题.
正所谓, 条条大路通罗马. 一条路走不通, 我们换一条路走吧.
那么, 换一种思路, 不直接用表操作sql去改字段, 而是通过存储过程的方式来改. 对字段进行判断, 再修改, 那么你提供的脚本就是可重复执行脚本, 且不会报错.
delimiter $ drop procedure if exists pro_put_column; create procedure pro_put_column() BEGIN if not exists(select * from information_schema.COLUMNS where TABLE_SCHEMA=database() and table_name='表名' and COLUMN_NAME='字段名') THEN alter table 表名 add column 字段名 varchar(50); ELSE alter table 表名 MODIFY COLUMN 字段名 varchar(51); end if; END $ delimiter ;
call pro_put_column();
可以先查询字段是否存在, 再决定要不要加, 或者要不要改. 后面的逻辑, 就根据实际需要去修改就可了.
如果确定是新增字段, 那么else部分完全可以删除掉.
就是每改一个字段, 都要去查询一次, 有点不方便. 写的东西更多了.
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- MySQL replace函数怎么替换字符串语句 2020-03-09
- PHP访问MySQL查询超时怎么办 2020-03-09
- mysql登录时闪退 2020-02-27
- MySQL出现1067错误号 2020-02-27
- mysql7.x如何单独安装mysql 2020-02-27
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash