我正在尝试为软件程序编写更新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