2016-09-28 90 views
5
ALTER TABLE user DROP COLUMN registered_date 

我們可以使用上述命令刪除一列。但是,我只能在列registered_date存在時才能刪除它?如何在mysql中存在一列?

+0

它看起來並不像有一種方法,但最壞的情況下,你會得到它,你可以在你的應用層處理錯誤。 –

+0

它看起來像這樣ALTER TABLE用戶DROP COLUMN IF EXISTS registered_date; –

+0

@DeepakJoshi我會得到語法錯誤:「意外的IF」。 – CloudSeph

回答

-1
IF EXISTS(SELECT * 
      FROM information_schema.COLUMNS 
      WHERE 
      TABLE_SCHEMA = 'db_name' 
      AND TABLE_NAME = 'table_name' 
      AND COLUMN_NAME = 'column_name') 
BEGIN 
ALTER TABLE table_name DROP COLUMN column_name 
END 

OR

IF (SELECT COUNT(*) 
      FROM information_schema.COLUMNS 
      WHERE 
      TABLE_SCHEMA = 'db_name' 
      AND TABLE_NAME = 'table_name' 
      AND COLUMN_NAME = 'column_name'>0) 
BEGIN 
ALTER TABLE table_name DROP COLUMN column_name 
END 
+0

我得到一個語法錯誤「如果不是有效的輸入在這個位置」。如果我遵循以上 – CloudSeph

+0

@IvanCloud這些語句組合僅在像存儲過程中可用 – Drew

+0

不工作無效語法附近if – Clintm

相關問題