MySQL 項目中 SQL 腳本更新、升級方式,防止多次重複執行 SQL Server 項目中 SQL 腳本更新方式 Oracle 項目中 SQL 腳本更新方式 MySQL 創建存儲過程注意項

一套代碼,多家部署時,在SQL腳本升級時,通過一個SQL文件給運維,避免出現SQL執行序順出錯及漏執行SQL

SQL Server 項目中 SQL 腳本更新方式

Oracle 項目中 SQL 腳本更新方式

MySQL 項目中 SQL 腳本更新、升級方式,防止多次重複執行

MySQL 中不像 Oracle或 MSSQL 可以直接在腳本中進行 if 判斷,所以可以通過添加存儲過程的方式,來解決這個問題

如:MySQL 創建存儲過程注意項

#通過存儲過程添加字段,如果字段存在就不添加。執行後將存儲過程刪除
DELIMITER //
CREATE PROCEDURE thoth_mes.ADD_USER_REAL_NAME() BEGIN IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS WHERE table_schema = 'test' AND table_name = 'sys_user' AND column_name = 'REAL_NAME') THEN ALTER TABLE `sys_user` ADD COLUMN `REAL_NAME` VARCHAR(20) NULL COMMENT '真實姓名' AFTER `LoginName`; END IF; END; // CALL ADD_USER_REAL_NAME; DROP PROCEDURE ADD_USER_REAL_NAME;


# 若記錄已經存在,則忽略本次操作,返回影響行爲0,否則執行插入操作,返回影響行爲1
INSERT IGNORE INTO sys_user(id,loginName)VALUE(123,456)

# 若記錄已經存在,則刪除老的記錄,插入此新的記錄,否則直接插入
REPLACE INTO sys_user(id,loginName)VALUE(123,789)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章