在MYSQL中添加表字段时如何判断字段不存在再添加?

cf_journey 2011-04-02 11:28:35
添加表字段时如何判断字段不存在再添加?
如下面的语句:
ALTER TABLE t1 ADD col1 VARCHAR( 1 ) NOT NULL
我想判断t1表中的col1列是否存在,如果不存在,就添加,如果存在则不添加。
我试了下面两个语句都是错误的:
ALTER TABLE t1 ADD IF NOT EXISTS col1 VARCHAR( 1 ) NOT NULL
ALTER TABLE t1 IF NOT EXISTS ADD col1 VARCHAR( 1 ) NOT NULL

请问正确的写法应该怎么写?
...全文
12423 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2011-04-02
  • 打赏
  • 举报
回复
MYSQL中无法用一句完成,你只能用程序来先判断表中是否有这个字段。
yananguo_1985 2011-04-02
  • 打赏
  • 举报
回复

IF NOT EXISTS(SELECT 1 FROM COLUMNS WHERE TABLE_SCHEMA='test' AND table_name='A' AND COLUMN_NAME='c1') THEN
ALTER TABLE A ADD c1 VARCHAR(1) NOT NULL;
END IF;



yananguo_1985 2011-04-02
  • 打赏
  • 举报
回复
SELECT * FROM COLUMNS WHERE TABLE_SCHEMA='test' AND table_name='A' AND COLUMN_NAME='c1'
iihero_ 2011-04-02
  • 打赏
  • 举报
回复
写个存储过程,很容易实现的。
ACMAIN_CHM 2011-04-02
  • 打赏
  • 举报
回复
[Quote]回复楼上的,我们是给用户系统做升级,有一部分升级过,同部分没有升级过,所以需要判断一下。[/Quote]那就写脚本程序吧。无法通过SQL语句实现。用存储过程反而复杂。
WWWWA 2011-04-02
  • 打赏
  • 举报
回复
要用SP来完成
cf_journey 2011-04-02
  • 打赏
  • 举报
回复
回复楼上的,我们是给用户系统做升级,有一部分升级过,同部分没有升级过,所以需要判断一下。
rucypli 2011-04-02
  • 打赏
  • 举报
回复
看一眼表结构不得了吗,哪有经常改表结构的业务

56,677

社区成员

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

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