1

我正在尝试为软件程序编写更新 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 中返回错误。

4

2 回答 2

6

使用 ALTER TABLE 语句将多个列添加到表中:

ALTER TABLE TableName
ADD (column1 col_definition,
column2 col_definition,
column3 col_definition,
....      ......
....      ......
columnN col_definition);
于 2013-03-06T08:28:47.143 回答
0

您确定要单独测试新列是否存在,如果不存在则单独添加每一列?

如果您希望INFORMATION_SCHEMA查询测试是否存在任何列 column1、column2 等,您可以使用IN语句。如果要测试它们是否存在,则可以使用INand 而不是检查结果集是否为空,选择 aCOUNT(*)并检查返回的计数是否是预期的数字(涉及的列数)。

于 2011-10-14T23:46:56.517 回答