关闭

动态更新数据库脚本——Mysql

301人阅读 评论(0) 收藏 举报
分类:

具体的upgrade脚本如下:


动态删除索引

DROP PROCEDURE IF EXISTS UPGRADE;

DELIMITER $$
CREATE PROCEDURE UPGRADE()
BEGIN
-- RESOURCE.AUDIO_ATTRIBUTE
	IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = 'RESOURCE' AND TABLE_NAME = 'AUDIO_ATTRIBUTE' AND INDEX_NAME = 'resource_publish_resource_id_index')
    THEN 
        ALTER TABLE `AUDIO_ATTRIBUTE` DROP INDEX resource_publish_resource_id_index;
	END IF;
		
	
END$$
DELIMITER ;
CALL UPGRADE();
DROP PROCEDURE IF EXISTS UPGRADE;


动态添加字段

DROP PROCEDURE IF EXISTS UPGRADE;

DELIMITER $$
CREATE PROCEDURE UPGRADE()
BEGIN
-- HOMEWORK.HOMEWORK_QUESTION_GROUP.FROM_ID
	IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'HOMEWORK' AND TABLE_NAME = 'HOMEWORK_QUESTION_GROUP' AND COLUMN_NAME = 'FROM_ID')
    THEN 
        ALTER TABLE `HOMEWORK_QUESTION_GROUP` ADD COLUMN FROM_ID VARCHAR(50) NULL;
	END IF;

-- HOMEWORK.HOMEWORK_QUESTION_GROUP.QUESTION_TYPE
	IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'HOMEWORK' AND TABLE_NAME = 'HOMEWORK_QUESTION_GROUP' AND COLUMN_NAME = 'QUESTION_TYPE')
    THEN 
        ALTER TABLE `HOMEWORK_QUESTION_GROUP` ADD COLUMN QUESTION_TYPE VARCHAR(50) NULL;
	END IF;
	
-- HOMEWORK.HOMEWORK_QUESTION_GROUP.DIFFICULTY
	IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'HOMEWORK' AND TABLE_NAME = 'HOMEWORK_QUESTION_GROUP' AND COLUMN_NAME = 'DIFFICULTY')
    THEN 
        ALTER TABLE `HOMEWORK_QUESTION_GROUP` ADD COLUMN DIFFICULTY VARCHAR(50) NULL;
	END IF;
	
END$$
DELIMITER ;
CALL UPGRADE();
DROP PROCEDURE IF EXISTS UPGRADE;




其他语法类似,主要区分EXISTS和 NOT EXISTS的用法。 








0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Mysql 数据库升级shell脚本编写与测试心得

Mysql 数据库升级shell脚本编写与测试心得
  • JenMinZhang
  • JenMinZhang
  • 2016-04-26 17:45
  • 1729

mysql如何更改数据库名脚本

转载地址:http://www.cnblogs.com/zejin2008/p/5464602.html 由于某种原因,有时我们有可能需要数据库的名称,但是不像官方有rename...
  • yang889999888
  • yang889999888
  • 2017-05-26 17:11
  • 314

mysql导入外部sql脚本的方法

MySql导入外部脚本的方法:导入的方法分为两种:一是采用图形化工具,如SQLYog、Navicat等;二是利用MySql的命令行界面。下面分别介绍:
  • u011043843
  • u011043843
  • 2014-06-10 00:53
  • 3627

使用shell脚本自动更新动态域名

if [[ `cat /tmp/ipNow` =~ ([0-9]{2}.?){4} ]]; then echo 'yes'; else echo 'no'; fi
  • fanxiong
  • fanxiong
  • 2014-08-22 13:05
  • 1448

使用升级脚本进行数据库版本管理及发布

本文转载于:http://jishu.zol.com.cn/14058.html 1、简介   数据库升级经常被拖到发布任务的“收官阶段”,它经常被留在整个项目的最后,或者是发布前的最后一个spr...
  • gsying1474
  • gsying1474
  • 2015-06-01 11:58
  • 2298

mysql数据迁移shell 脚本

有两个脚本第一个mysql_db_trans.sh,第二个mysql_all_db_trans.sh。这个两个脚本可能存在缺陷,放在这里只是为了方便自己查看。 mysql_db_trans.sh ...
  • gua___gua
  • gua___gua
  • 2015-11-03 14:12
  • 1339

一个备份MySQL数据库的简单Shell脚本

Shell脚本是我们写不同类型命令的一种脚本,这些命令在这一个文件中就可以执行。我们也可以逐一敲入命令手动执行。如果我们要使用shell脚本就必须在一开始把这些命令写到一个文本文件中,以后就可以随意反...
  • xiaoxian8023
  • xiaoxian8023
  • 2014-12-31 23:54
  • 2515

编写shell脚本对mysql数据库进行定时备份

在linux上安装mysql并建立测试库,编写shell脚本对此库使用mysqldump进行定时备份和历史备份文件清理(保留3天),注意脚本的通用性和扩展性 1 mysq数据库的安装    yum i...
  • congju
  • congju
  • 2016-09-03 16:28
  • 3336

一个备份MySQL数据库的简单Shell脚本

Shell脚本是我们写不同类型命令的一种脚本,这些命令在这一个文件中就可以执行。我们也可以逐一敲入命令手动执行。如果我们要使用shell脚本就必须在一开始把这些命令写到一个文本文件中,以后就可以随意反...
  • river131
  • river131
  • 2015-12-31 19:01
  • 638

Linux 使用脚本安装MySQL数据库

在Linux安装软件,对于开发人员来说,也许很简单,但是对于一些工程或者直接用户来说,他们连最起码的命令都不懂,更不用提安装什么软件 为了简便操作,我这里提供一个方便大家操作的方法,使用脚本安装My...
  • cuisuqiang
  • cuisuqiang
  • 2014-11-13 16:15
  • 1110
    个人资料
    • 访问:556107次
    • 积分:5399
    • 等级:
    • 排名:第5839名
    • 原创:102篇
    • 转载:33篇
    • 译文:0篇
    • 评论:352条
    个人简介
    我只是一个简单的Coder,为了兴趣和理想奋斗在生活的道路上
    希望大家多多交流,共同进步,有疑问或想法请留言或者私信,也可以加群:157797573

    博客专栏
    最新评论
    你还在一个人孤独的奋斗吗?
    其实,你并不寂寞,欢迎加入CSDN Java群,这里是你的另一个家!    点击加入:CSDN Java群