動態更新資料庫指令碼——Mysql
具體的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的用法。
相關文章
- MySQL資料庫叢集自動安裝指令碼!MySql資料庫指令碼
- MySQL 批量更新、刪除資料shell指令碼MySql指令碼
- MySQL匯出資料庫指令碼MySql資料庫指令碼
- 《mysql資料庫備份小指令碼》MySql資料庫指令碼
- 自動定時備份 mysql 資料庫 的 shell 指令碼MySql資料庫指令碼
- 讓資料庫更安全,Mysql自動備份指令碼(轉)資料庫MySql指令碼
- MySQL資料庫備份的shell指令碼MySql資料庫指令碼
- 《mysql資料庫備份小指令碼》(轉)MySql資料庫指令碼
- mysqldump來備份MYSQL資料庫(指令碼)MySql資料庫指令碼
- 建立管理MySQL資料庫的shell指令碼MySql資料庫指令碼
- ListView動態更新資料View
- 通過shell指令碼批量操作mysql資料庫指令碼MySql資料庫
- Liunx備份mysql資料庫的shell指令碼MySql資料庫指令碼
- Mysql資料庫的簡單備份指令碼MySql資料庫指令碼
- informix 資料庫啟動關閉指令碼ORM資料庫指令碼
- Xcode新增Shell指令碼打包靜態庫和動態庫XCode指令碼
- Bash 指令碼安裝 MySQL-8.0.20 資料庫指令碼MySql資料庫
- mysql資料庫之間、table增量匯入指令碼MySql資料庫指令碼
- Ibatis批量更新資料(mysql資料庫)BATMySql資料庫
- 程式碼生成器Sql Server 和 Mysql 資料庫指令碼ServerMySql資料庫指令碼
- Mysql資料庫優化系列(二)------AWK指令碼統計資料庫效能引數MySql資料庫優化指令碼
- 資料庫備份指令碼資料庫指令碼
- 刪除資料庫指令碼資料庫指令碼
- 資料庫監控指令碼資料庫指令碼
- 資料庫全備指令碼資料庫指令碼
- 監控資料庫指令碼資料庫指令碼
- shell動態指令碼和pl/sql動態指令碼的比較指令碼SQL
- 自動更新資料庫資料的shell資料庫
- 啟動MySql資料庫MySql資料庫
- 呼叫中心資料入庫指令碼指令碼
- 資料庫批次授權指令碼資料庫指令碼
- Sybase 資料庫啟停指令碼資料庫指令碼
- [zt]資料庫監控指令碼資料庫指令碼
- 資料庫全備份指令碼資料庫指令碼
- 資料庫監控指令碼(一)資料庫指令碼
- 資料庫監控指令碼(二)資料庫指令碼
- 資料庫監控指令碼(三)資料庫指令碼
- 指令碼建立Oracle的資料庫指令碼Oracle資料庫