如何使用MySQL drop column从表中删除列
MySQL DROP-COLUMN语句简介
在某些情况下,需要从表中删除一列或多列。在这种情况下,可以使用以下ALTER TABLE DROP COLUMN语句:
ALTER TABLE table_name
DROP COLUMN column_name;
在这种语法中:
请注意,DROP COLUMN子句中的关键字COLUMN关键字是可选的,因此您可以使用更短的语句,如下所示:
ALTER TABLE table_name
DROP column_name;
要使用单个ALTER table语句从表中删除多个列,请使用以下语法:
ALTER TABLE table_name
DROP COLUMN column_name_1,
DROP COLUMN column_name_2,
...;
在从表中删除列之前,您应该记住以下几点:
MySQL下拉列表示例
首先,为演示创建一个名为posts的表。
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
);
接下来,使用ALTER TABLE DROP COLUMN语句删除摘录列:
ALTER TABLE posts
DROP COLUMN excerpt;
然后,使用descripe语句查看表结构:
DESCRIBE posts;
之后,使用ALTER TABLE DROP COLUMN语句删除创建的_at和更新的_at列:
ALTER TABLE posts
DROP COLUMN created_at,
DROP COLUMN updated_at;
最后,使用描述语句验证删除:
DESCRIBE posts;
MySQL删除一列,这是一个外键示例
如果删除作为外键的列,MySQL将发出一个错误。考虑下面的例子。
首先,创建一个名为categories的表:
CREATE TABLE categories (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255)
);
其次,将名为category_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);
第四,从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语句从表中删除一个或多个列。