当前位置: 首页 > 面试题库 >

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

浦毅
2023-03-14
问题内容

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

我知道我可以使用ALTER TABLE my_table DROP COLUMN my_column,但是如果my_column不存在则会抛出错误。是否有其他语法可有条件地删除列?

我正在使用MySQL版本4.0.18。


问题答案:

对于MySQL,没有: 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的几个分支之一支持的非标准功能可能是一个坏主意。



 类似资料:
  • 本文向大家介绍MySQL ALTER列删除主键和auto_increment?,包括了MySQL ALTER列删除主键和auto_increment?的使用技巧和注意事项,需要的朋友参考一下 您可以使用ALTER命令删除主键和auto_increment。语法如下- 为了理解上述语法,让我们创建一个表。创建表的查询如下- 使用DESC命令检查表的描述。语法如下- 使用DESC检查表'removeP

  • 问题内容: 如何通过在alter上输入值来添加该列?作为示例,我想在每行上添加 tempID 的列,该列的值为“ 3” 也许是这样的 但是上面的代码仅用于时间戳,不适用于整数值。提前致谢 问题答案: 您应该查看此https://dev.mysql.com/doc/refman/5.7/en/alter- table.html 对于您的情况,它将类似于

  • 问题内容: 我正在从表单文本字段,并从复选框中的字段 我将它们像这样组合: (此函数在列表中的字符串内去除空格。) 但在这种情况下是空的(没有新的标签进入),但也有一些,包含一个空字符串。 例如,来自: 我如何摆脱空字符串? 如果列表中有一个空字符串: 但是,如果没有空字符串: 但这给出了: 为什么会发生这种情况,我该如何解决? 问题答案: 1)几乎是英式风格: 使用操作员测试是否存在,然后应用该

  • 问题内容: 朋友们, 我正在创建一个临时表。该脚本可能会运行几次,因此我需要检查临时表是否存在,然后将其删除。我已经在下面编写了代码,但是两次运行脚本时出现错误,表明该表已经存在: 数据库中已经有一个名为“#lu_sensor_name_19”的对象 。 当Tablle不为null时,似乎不会返回true。我究竟做错了什么? 问题答案: Temp #Tables是在tempdb中创建的。试试这个:

  • 我想创建一个文件;如果它已经存在,我想删除它并重新创建它。我尝试这样做,但它抛出一个Win32错误。我做错了什么?

  • 下面的代码是针对我的single.php的。php if(have_posts())调用标准wordpress功能图像,函数_exists('dfi_get_featured_images')部分获取以nivo滑块样式包装的滑块图像。 php if(have_posts())循环正在破坏脚本。我试图将其包含在if-else语句中,以仅在帖子if($featuredImages!=NULL)中没有幻