翼度科技»论坛 编程开发 mysql 查看内容

新增或修改mysql表字段--可重复执行脚本

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
想必大家在版本更新迭代中,不免需要对数据库表的字段进行修改字段类型或者长度的情况,
如果是修改存储过程或者自定义函数, 那还是很好改的, 不用担心表功能收到影响.
如果是改字段呢?
首先要判断字段是不是已经在系统里面, 没有的话, 需要新增上去, 有的话, 需不需要修改?
其次, 脚本如果报错, 是否会重复执行一下脚本? 会不会导致别的问题呢? 看脚本里面执行结果报了好多错, 总觉得, 会被运维鄙视一遍. 做开发的, 真受不了别人鄙视自己的东西.
直接用sql去新增, 修改字段, 好像不太行, 经常会有问题.
下面就是提供脚本,可重复升级
  1. DELIMITER ??
  2. DROP PROCEDURE IF EXISTS schema_change??
  3. CREATE PROCEDURE schema_change()
  4. BEGIN
  5. IF NOT EXISTS (SELECT * FROM information_schema.columns WHERE table_schema = DATABASE()  AND table_name = '表名' AND column_name = '字段名') THEN
  6. ALTER TABLE `表名`
  7. ADD COLUMN `字段名` varchar(2000) NULL COMMENT '字段名注释';
  8. ELSE
  9. ALTER TABLE `表名`
  10. MODIFY COLUMN `字段名` varchar(2000) NULL COMMENT '字段名注释';
  11. END IF;
  12. END??
  13. DELIMITER ;
  14. CALL schema_change();
复制代码
就跟java代码中的if/else 判断一样的逻辑

来源:https://www.cnblogs.com/dingdingCat/p/17119497.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具