数据库
首页 > 数据库> > 如果MySQL中存在列,则使用ALTER删除列

如果MySQL中存在列,则使用ALTER删除列

作者:互联网

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

我知道我可以使用ALTER TABLE my_table DROP COLUMN my_column,但是如果my_column不存在则会抛出错误.有条件地删除列的替代语法是什么?

我使用的是MySQL 4.0.18版.

解决方法:

对于MySQL,没有:MySQL Feature Request.

无论如何,允许这可能是一个非常糟糕的主意:如果EXISTS表明您正在使用(对您来说)未知结构的数据库上运行破坏性操作.在某些情况下,这对于快速和肮脏的本地工作来说是可以接受的,但是如果您想要针对生产数据(在迁移等中)运行这样的声明,那么您就会玩火.

但是如果你坚持认为,首先在客户端检查存在或捕获错误并不困难.

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

DROP [COLUMN] [IF EXISTS] col_name

一世.即

ALTER TABLE my_table DROP IF EXISTS my_column;

但依赖于MySQL的几个分支中只有一个支持的非标准功能,这可能是一个坏主意.

标签:mysql,ddl,mysql4
来源: https://codeday.me/bug/20190918/1811896.html