mysql新增表或欄位時判斷是否存在
- 2019 年 12 月 18 日
- 筆記
新增數據表和欄位是很常見的,在如果表已經存在或者欄位存在時就會報錯,
在升級程式時往往是一大堆的sql語句,而單一的sql語句是沒法在新增時判斷表或欄位是否存在的,必須寫成存儲過程
下面是一個存儲過程的例子
CREATE PROCEDURE `add_col_homework`()-- 新增一個存儲過程 BEGIN IF not EXISTS (SELECT column_name FROM information_schema.columns WHERE table_name = 'ot_user' and column_name = 'sfzzh') -- 判斷是否存在欄位 THEN -- 不存在則新增欄位 ALTER TABLE ot_stamp ADD COLUMN `sfzzh` int(10); END IF; END; call add_col_homework();-- 運行該存儲過程 drop PROCEDURE add_col_homework; -- 刪除該存儲過程