如果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