作者:mobiledu2502876467 | 来源:互联网 | 2023-08-29 13:12
如果该列存在,如何使用ALTER删除MySQL表中的列?我知道我可以使用ALTERTABLEmy_tableDROPCOLUMNmy_column,但是如果my_column不存在
如果该列存在,如何使用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的几个分支中只有一个支持的非标准功能,这可能是一个坏主意.