2012-07-31 41 views
0

我想檢查,存在或不存在於mytable列中的「auto」,如果不存在,則添加他的。一個讓這個如此:檢查列存在於表中並在一個查詢中添加列

mysql-> SHOW COLUMNS FROM mytable 

,用PHP我檢查中,結果存不存在「自動」,如果沒有,我做:

mysql-> ALTER TABLE mytable ADD auto VARCHAR (30) NOT NULL COLLATE utf8_general_ci 

問:請告訴,如何使這個在一個查詢中?

回答

1

您可以在存儲過程中定義以下查詢,調用存儲過程來添加列(如果不存在)。

IF NOT EXISTS(
    SELECT * FROM information_schema.COLUMNS 
    WHERE COLUMN_NAME='auto' AND TABLE_NAME='my_table' AND TABLE_SCHEMA='the_schema' 
    ) 
    THEN 
     ALTER TABLE `the_schema`.`my_table` 
     ADD COLUMN `auto` VARCHAR (30) NOT NULL COLLATE utf8_general_ci ; 

END IF; 
+0

IF/END IF僅用於存儲程序,它不會運行。作爲獨立的sql腳本 - 或者我錯了嗎? – Veverke 2017-08-06 08:09:22

1

只是跳過第一個查詢,並嘗試添加它,如果它的alredy存在,它會失敗,如果它的缺失,它會被添加

+0

好,謝謝,但例如是這樣的情況:必須檢查列「自動」,如果他不存在,添加表列「some_column – 2012-07-31 10:14:09

相關問題