我想檢查,存在或不存在於mytable列中的「auto」,如果不存在,則添加他的。一個讓這個如此:檢查列存在於表中並在一個查詢中添加列
mysql-> SHOW COLUMNS FROM mytable
後
,用PHP我檢查中,結果存不存在「自動」,如果沒有,我做:
mysql-> ALTER TABLE mytable ADD auto VARCHAR (30) NOT NULL COLLATE utf8_general_ci
問:請告訴,如何使這個在一個查詢中?
我想檢查,存在或不存在於mytable列中的「auto」,如果不存在,則添加他的。一個讓這個如此:檢查列存在於表中並在一個查詢中添加列
mysql-> SHOW COLUMNS FROM mytable
後
,用PHP我檢查中,結果存不存在「自動」,如果沒有,我做:
mysql-> ALTER TABLE mytable ADD auto VARCHAR (30) NOT NULL COLLATE utf8_general_ci
問:請告訴,如何使這個在一個查詢中?
您可以在存儲過程中定義以下查詢,調用存儲過程來添加列(如果不存在)。
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;
只是跳過第一個查詢,並嘗試添加它,如果它的alredy存在,它會失敗,如果它的缺失,它會被添加
好,謝謝,但例如是這樣的情況:必須檢查列「自動」,如果他不存在,添加表列「some_column – 2012-07-31 10:14:09
IF/END IF僅用於存儲程序,它不會運行。作爲獨立的sql腳本 - 或者我錯了嗎? – Veverke 2017-08-06 08:09:22