使用ALTER删除列(如果它存在于MySQL中)

如果该列存在,如何使用ALTER将该列删除到MySQL表中?

我知道我可以使用ALTER TABLE my_table DROP COLUMN

my_column,但是如果my_column不存在则会抛出错误。是否有其他语法可有条件地删除列?

我正在使用MySQL版本4.0.18。

回答:

MySQL Feature

Request。

无论如何,允许这样做无疑是一个坏主意:IF

EXISTS表明您正在(具有)未知结构的数据库上运行破坏性操作。在某些情况下,这对于快速而又肮脏的本地工作是可以接受的,但是如果您很想对生产数据运行这样的语句(在迁移等过程中),那么您将大受打击。

但是,如果您坚持要求,那么首先在客户端中检查是否存在或捕获错误并不困难。

MariaDB还从10.0.2开始支持以下内容:

DROP [COLUMN] [IF EXISTS] col_name

ALTER TABLE my_table DROP IF EXISTS my_column;

但是,仅依靠MySQL的几个分支之一支持的非标准功能可能是一个坏主意。

以上是 使用ALTER删除列(如果它存在于MySQL中) 的全部内容, 来源链接: utcz.com/qa/434253.html

回到顶部