我正在嘗試爲軟件程序編寫更新mysql語句。目前這就是我對該陳述的看法,但我現在不知道如何添加多列來更新。用於添加多列的mysql語句是否存在
此代碼當前添加列是否存在或不存在。
/*delimiter '//'
CREATE PROCEDURE addcol() BEGIN
IF NOT EXISTS(
SELECT * FROM information_schema.COLUMNS
WHERE COLUMN_NAME=`top_status` AND TABLE_NAME='categories'
)
THEN
ALTER TABLE `categories`
ADD COLUMN `top_status` tinyint(1) NOT NULL default '1';
END IF;
END;
delimiter ';'
CALL addcol();
DROP PROCEDURE addcol;*/
有人能爲我提供正確的語句來得到這樣的工作...即。 WHERE COLUMN_NAME = column1,column2等。
我試過各種各樣的變化,並且所有的變化都會在phpmyadmin中返回一個錯誤,除了上述情況。
是我的方法,即使這樣做的正確方法?我想要做的是設置一個聲明,我可以使用許多不同的數據庫,這些數據庫在不同版本的數據/列上過時。一些數據庫有列,有些沒有,有些擁有所有最新的列。但我只想要一個語句對每個數據庫運行基本上使所有數據庫的相同和最新的版本。那麼,這是最好的方法還是有更好的方法?另外,下面是你要添加你的語句的方式嗎? – sven30
/*分隔符 '//' CREATE PROCEDURE ADDCOL()BEGIN IF NOT EXISTS( SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME IN('top_status, '類別')AND TABLE_NAME = '類別' ) THEN ALTER TABLE'categories' ADD COLUMN('top_status' tinyint(1)NOT NULL默認'1','categories' tinyint(1)NOT NULL默認'1'); END IF; END; 定界符';' CALL addcol(); 刪除程序addcol; */ 這不工作順便說一句。 – sven30
這不是'ALTER TABLE'的正確語法;正確的語法是'ALTER TABLE categories ADD TAMLIN top_status tinyint(1)NOT NULL默認'1',ADD COLUMN分類tinyint(1)NOT NULL默認'1'' – Hammerite