博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
动态更新数据库脚本——Mysql
阅读量:5878 次
发布时间:2019-06-19

本文共 1589 字,大约阅读时间需要 5 分钟。

具体的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的用法。

转载于:https://blog.51cto.com/13545923/2053348

你可能感兴趣的文章
截取字符串中两个字符串中的字符串
查看>>
spring xml properties split with comma for list
查看>>
判断点是否在三角形内
查看>>
Android实战简易教程-第二十三枪(基于Baas的用户注冊验证username是否反复功能!)...
查看>>
在odl中怎样实现rpc
查看>>
leetcode 110 Balanced Binary Tree
查看>>
python活用isdigit方法显示系统进程
查看>>
项目开发总结
查看>>
知行合一
查看>>
jmeter插件之jsonpath提取响应结果和做断言
查看>>
发布支持多线程的PowerShell模块 —— MultiThreadTaskRunner
查看>>
Ubuntu ctrl+alt会导致窗口还原的问题
查看>>
第四十期百度技术沙龙笔记整理
查看>>
推荐系统那点事 —— 基于Spark MLlib的特征选择
查看>>
linux 下RTL8723/RTL8188调试记录(命令行)【转】
查看>>
開始新的征程
查看>>
SpringMVC案例1——对User表进行CRUD操作
查看>>
看雪CTF第十四题
查看>>
模拟生命_吸烟致癌?
查看>>
[Contiki系列论文之1]Contiki——为微传感器网络而生的轻量级的、灵活的操作系统...
查看>>