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; -- 刪除該存儲過程