具体的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的用法。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接
继续阅读与本文标签相同的文章
上一篇 :
FlowLayout流式布局实现搜索清空历史记录
下一篇 :
开启程序员世界的Hello World
-
35个Java代码优化的细节,你知道几个?
2026-05-19栏目: 教程
-
[译] 作为程序员你不能成功的 10 个迹象
2026-05-19栏目: 教程
-
[译] 从没有人告诉过我的 CSS 小知识
2026-05-19栏目: 教程
-
[译] Android 生命周期备忘录 — 第三部分:Fragments
2026-05-19栏目: 教程
-
[译] 多线程简介:一步一步来接近多线程的世界
2026-05-19栏目: 教程
