使用 ALTER 删除 MySQL 中存在的列

2024-02-07

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

我知道我可以使用ALTER TABLE my_table DROP COLUMN my_column,但是如果my_column不存在。是否有替代语法来有条件地删除列?

我使用的是 MySQL 版本 4.0.18。


对于 MySQL 来说,没有: MySQL 功能请求 http://bugs.mysql.com/bug.php?id=10789.

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

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

MariaDB 从 10.0.2 开始还支持以下版本:

DROP [COLUMN] [IF EXISTS] col_name 

i. e.

ALTER TABLE my_table DROP IF EXISTS my_column;

但依赖于仅由 MySQL 的几个分支之一支持的非标准功能可以说是一个坏主意。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ALTER 删除 MySQL 中存在的列 的相关文章

随机推荐

  • 多租户身份服务器 4

    我正在尝试实现一个 IdentityServer 来处理多租户应用程序的 SSO 我们的系统将只有一个 IdentityServer4 实例来处理多租户客户端的身份验证 在客户端 我正在使用acr value传递租户 ID Startup
  • 如何在package.json中添加多个NODE_PATH?

    如何在package json中添加多个NODE PATH 我想要有这些多条路径 NODE PATH NODE PATH modules or NODE PATH lib NODE PATH modules 包 json name my a
  • 将 pandas 数据框列转换为带有源和目标的 networkx 图

    我在 pandas 中有一个 DataFrame 其中包含有关人员及时位置的信息 大约有 300 多万行 这是示例 其中每个名称都分配给一个唯一的index by group by并排序Name and Year import pandas
  • htaccess 通过查询字符串阻止请求

    有没有办法阻止具有特定查询字符串的所有请求 我应该阻止所有包含 userid 1234 或 userid 1234 的请求 例如 directory page php userid 1234 var2 abc var3 directory
  • Gradle 任务差异

    下面两个代码片段有什么区别 First task copyFiles type Copy lt lt from folder from into dest folder Second task copyFiles type Copy fro
  • 如何通过EC2 SSH隧道从本地JAVA程序连接到RDS

    我正在尝试通过 SSH 隧道从本地 JAVA 程序连接到 RDS 数据库到 EC2 实例 以进行调试 我正在尝试在 EC2 实例中建立 SSH 隧道 然后将端口转发到 RDS 数据库 这是我的代码 final int localPort 9
  • Webgl 没有渲染我的圆圈

    我正在尝试学习如何使用 Webgl 并且已经学会了如何绘制三角形 正方形和直线 我在 webgl 中创建圈子时遇到问题 var InitDemo function var canvas document getElementById cir
  • 如何设置绑定项目的ContextMenu?

    我正在努力实现以下目标
  • C# RichTextBox选择问题

    我的应用程序上有一个 RichTextBox 控件 这是我的问题 当应用程序运行时 如果我开始用鼠标选择单词内的某些字符并继续在其外部选择 则选择会自动包含我开始选择的整个单词以及我想从中选择一部分的任何其他单词 ms word ish 如
  • IMPORTXML 到具有自动更新功能的 Google Apps 脚本中 [重复]

    这个问题在这里已经有答案了 我正在尝试让 Google 表格应用程序脚本适用于我正在使用的 IMPORTXML A1 importxml http www nfl com liveupdate scorestrip ss xml q A2
  • 获取矩阵元素的邻居

    我有一个矩阵 对于每个元素 我想获取其周围元素的索引 所有这些结果必须按以下方式存储到矩阵中 矩阵的每一行对应于一个矩阵元素 并且该矩阵的每一列包含 s 个邻居索引 例如 对于 4x4 矩阵 我们将得到一个 16x8 结果数组 某些矩阵元素
  • Ms Access vba 打开另一个数据库中表的数据表视图

    该语句将打开当前数据库中指定表的数据表视图 DoCmd OpenTable sTablename acViewNormal 有没有办法让另一个数据库中的表达到相同的结果 我有一个表单 可以在其中选择 Access 数据库 然后下拉菜单中会填
  • Mongodb 是否可以聚合对象?

    我正在尝试汇总本文档中的数据包总数 id ObjectId 51a6cd102769c63e65061bda capture 1369885967 packets 0 595 1 596 2 595 3 595 我能得到的最接近的是 db
  • Jythonc 失踪

    我刚刚安装了 Jython 2 5 1 我想将我的 Python 文件转换为 Java 类文件 网站上指示使用 jythonc 命令行工具 但我找不到它 有谁知道我在哪里可以找到它 基本上我想要完成的是让我的 Python 代码在浏览器中运
  • ValueError:无法处理多标签指示器和二进制的混合

    我将 Keras 与 scikit learn 包装器一起使用 特别是 我想使用 GridSearchCV 进行超参数优化 这是一个多类问题 即目标变量只能在一组 n 个类上选择一个标签 例如 目标变量可以是 Class1 Class2 C
  • PyMC - 方差-协方差矩阵估计

    我读了下面的论文 http www3 stat sinica edu tw statistica oldpdf A10n416 pdf http www3 stat sinica edu tw statistica oldpdf A10n4
  • PHPUnit 总是输出“没有执行测试!”在 MacOS 大苏尔

    当尝试跑步时anyPHPUnit 测试 我总是得到No tests executed 我的 MacOS 机器上的消息 在这台特定机器上进行重现的一个简单方法是安装一个新的 Laravel 实例并运行默认测试 composer create
  • jQuery;对于 new Image(),Chrome 图像宽度和高度 = 0

    在 DOM 加载后 我无法让 Chrome 识别图像宽度或高度 图像通过 phpThumb 脚本动态加载 调整图像大小 如果我去掉动态 url 并将其替换为图像的直接 url 我不会遇到任何问题 并且 Chrome 中一切正常 但使用动态
  • SQL 中关键字“GROUP”附近的语法不正确

    我在对语句进行分组时遇到错误 这是我的代码 DECLARE avg volume INT SELECT avg volume ISNULL AVG Total Volume 0 FROM SELECT station id DATEPART
  • 使用 ALTER 删除 MySQL 中存在的列

    如果 MySQL 表中存在某列 如何使用 ALTER 删除该列 我知道我可以使用ALTER TABLE my table DROP COLUMN my column 但是如果my column不存在 是否有替代语法来有条件地删除列 我使用的