我正在尝试为软件程序编写更新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;*/
有人能为我提供正确的陈述,以使这样的事情发挥作用......即。在哪里COLUMN_NAME = column1,column2等..
我尝试了各种各样的变体,除了上面的内容之外,所有变种都在phpmyadmin中返回错误。
答案 0 :(得分:6)
使用ALTER TABLE语句向表中添加多个列:
ALTER TABLE TableName
ADD (column1 col_definition,
column2 col_definition,
column3 col_definition,
.... ......
.... ......
columnN col_definition);
答案 1 :(得分:0)
当然,您想要单独测试是否存在新列,并且如果它们尚不存在则单独添加每个列?
如果您希望INFORMATION_SCHEMA
查询测试是否存在任何列column1,column2等,您可以使用IN
语句。如果您想测试它们是否全部,那么您可以使用IN
而不是检查结果集是否为空,请选择COUNT(*)
并检查返回的计数是否为预期数量(涉及的列数)。