在本教程中,我们将向您展示如何使用MySQL DROP COLUMN语句从表中删除列。

MySQL DROP COLUMN语句简介

在某些情况下,要从表中删除一个或多个列。 在这种情况下,可以使用ALTER TABLE DROP COLUMN语句如下:

ALTER TABLE table

DROP COLUMN column;

下面让我们更详细地学习上面的语法:

首先,在ALTER TABLE子句之后,指定将要删除的列的表。

其次,将列的名称放在DROP COLUMN子句之后。

请注意,关键字COLUMN是可选的,因此可以使用更短语句书写形式,如下:

ALTER TABLE table

DROP column;

要同时从表中删除多个列,请使用以下语法:

ALTER TABLE table

DROP COLUMN column_1,

DROP COLUMN column_2,

…;

在从表中删除列之前,应该要记住一些重要的事情:

从表中删除列会使所有数据库对象(如存储过程,视图,触发器等)依赖于列无效。 例如,您可能有一个引用列的存储过程。 删除列时,存储过程将变为无效。 要修复它,必须手动更改存储过程的代码。

取决于已删除列的其他应用程序的代码也必须更改,这需要时间和精力。

从大型表中删除列可能会影响数据库的性能。

MySQL DROP COLUMN示例

首先,为了演示创建一个名为posts的表。

USE testdb;

CREATE TABLE posts (

id INT AUTO_INCREMENT PRIMARY KEY,

title VARCHAR(255) NOT NULL,

excerpt VARCHAR(400),

content TEXT,

created_at DATETIME,

updated_at DATETIME

);

第二,假设要删除excerpt列,请使用ALTER TABLE语句如下:

ALTER TABLE posts

DROP COLUMN excerpt;

第三,要同时删除created_at和updated_at列,请使用以下语句:

ALTER TABLE posts

DROP COLUMN created_at,

DROP COLUMN updated_at;

MySQL删除一列是外键示例

如果您删除作为外键的列,MySQL将发出错误。下面我们来一步步演示这个想法。

首先,创建一个名为categories的表:

USE testdb;

CREATE TABLE categories (

id INT AUTO_INCREMENT PRIMARY KEY,

name VARCHAR(255)

);

第二,将categories_id列添加到posts表中。

ALTER TABLE posts ADD COLUMN category_id INT NOT NULL;

第三,将category_id列引用categories表的id列作为外键。

ALTER TABLE posts

ADD CONSTRAINT fk_cat

FOREIGN KEY (category_id)

REFERENCES categories(id) ON DELETE CASCADE;

第四,从posts表中删除category_id列。

ALTER TABLE posts

DROP COLUMN category_id;

MySQL发出错误消息:

Error Code: 1553. Cannot drop index 'fk_cat': needed in a foreign key constraint

为避免此错误,必须删除外键约束才能删除该列。

在本教程中,我们向您展示了如何使用MySQL DROP COLUMN语句从表中删除一个或多个列。

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

mysql删除列命令_MySQL删除列相关推荐

  1. mysql ping命令_MySQL常用命令总结

    MySQL常用命令总结 1.使用SHOW语句找出在服务器上当前存在什么数据库 mysql> show databases; 2.创建一个数据库MYSQLDATA mysql> create ...

  2. mysql reload 命令_MySQL常用命令

    原文链接: 其实这个链接可以用的但是我呢写成这样了:哈哈. 1.MySQL常用命令 create database name; 创建数据库 use databasename; 选择数据库 drop d ...

  3. mysql show 命令_mysql show 相关命令

    processlist的show方式是不能使用过滤查找,可能源自MySQL的内部安全机制吧,show是用来查看MySQL内部运行数据,其实processlist就是 information_schem ...

  4. mysql dba命令_MySQL DBA命令

    MySQL DBA命令 新建用户 CREATE USER username IDENTIFIED BY 'password'; 说明: username:你将创建的用户名 password:该用户的登 ...

  5. Mysql隐藏命令_mysql常用命令整理

    说明:下面用到的语法是参考官方mysql5.7 en manual文档,本机的运行环境为centos7和mysql5.7.26 修改数据库 语法: ALTER {DATABASE | SCHEMA} ...

  6. mysql历史命令_MySQL交互技巧

    本文介绍一些与客户端程序mysql进行交互的技巧,这些技巧能帮助我们更有效率地使用它,减少文字输入.此外,还会描述"怎样更加方便地连接到服务器",以及"如何在不经手工输入 ...

  7. mysql 用户命令_MySQL命令行新建用户

    https://www.cnblogs.com/penciler/p/4813157.html MySQL命令行能否实现新建用户呢?答案无疑是肯定的.而且在使用使用MySQL命令行新建用户后,还可以为 ...

  8. mysql 锁命令_MySQL锁定状态查看命令

    1 show processlist; SHOW PROCESSLIST显示哪些线程正在运行.您也可以使用mysqladmin processlist语句得到此信息.如果您有SUPER权限,您可以看到 ...

  9. mysql change命令_Mysql 操作基本命令大全

    7.1 一个建库和建表的实例1 drop database if exists school; //如果存在SCHOOL则删除 create database school; //建立库SCHOOL ...

最新文章

  1. Android Volley 库通过网络获取 JSON 数据
  2. C语言-人狼羊菜问题-最容易看懂的解决方法及代码
  3. vant-image本地图片无法显示
  4. 二十五、Kaggle | 全球听众最多的50首歌曲
  5. USACO 3.2 Stringsobits
  6. 感知算法论文(六):LEDNet(2019)
  7. 理解并从头搭建redis集群
  8. 【STM32】IIC的基本原理(实例:普通IO口模拟IIC时序读取24C02)(转载)
  9. 帝国 标签模板 使用程序代码 自定义 时间显示方式
  10. C++自学20:指针/指针的指针/const
  11. ufs3.0和12G内存哪个对流畅运行影响大?
  12. python实现食品推荐_Python分析亚马逊赞不绝口食物评论
  13. SAP 生产订单变更管理 OCM Order Changement Management
  14. 电子表格计算机操作题及素材,2015计算机应用基础-excel电子表格题目.doc
  15. 学python数据分析心得体会800字_一点学习大数据分析的心得体会
  16. 汇智创科机器人,汇智创科机器人加盟
  17. jmeter--上传图片类接口
  18. 输入法出现异常???输入英文字母分隔很大???你真的会使用输入法了吗???如何高效使用输入法???微软自带输入法切换
  19. 【程序人生】互联网岗位分工;互联网开发流程;职责分工
  20. Uestc_suibian 暑假集训总结

热门文章

  1. 第三方支付为什么会兴起
  2. C语言三个点“...“符号含义之数组批量赋相同值
  3. Tomcat启动时报错:A child container failed during start解决方案-clean
  4. html mysql留言板_html留言板
  5. Android手机存储路径
  6. html5脑图_使用HTML5技术绘制思维导图
  7. 未来人类殡葬一览:太空中正飘着上千个骨灰盒
  8. Window7 如何分屏
  9. 史济怀20180915_1 有限覆盖定理
  10. 从零集成腾讯广告SDK