mysql 添加列的sql

harkue 2014-06-13 12:00:31
要对表进行添加一列,但是不确定表是否存在该列,因此要在添加之前进行列是否存在的判断。
写了以下语句一直提示错误。请求大牛帮助!!

SELECT IFNULL(column_name, '') INTO @colName
FROM information_schema.columns
WHERE table_name = 'my_table'
AND column_name = 'my_column';

IF @colName = '' THEN
ALTER TABLE cmt.`my_table` ADD COLUMN `my_column` VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'available cap' ;
ELSE
END IF;

提示错误:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF @colName = '' THEN
ALTER TABLE cmt.`oam_harddiskparam` ADD COLUMN `Disk' at line 1

一直是提示红色的行有错误,但是手动执行那行语句是没有问题的。

...全文
114 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
rjzou2006 2014-06-13
  • 打赏
  • 举报
回复
你这个必须在存储过程中执行。 你建一个存储过程吧。
ACMAIN_CHM 2014-06-13
  • 打赏
  • 举报
回复
MYSQL不支持 表名,列名为变量, 需要通过 prepare execute 这种方式来执行。具体请参考MYSQL官方手册中的PREPARE例子。
rucypli 2014-06-13
  • 打赏
  • 举报
回复
这种逻辑操作都需要包在存储过程里面

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧