如何从MySQL中的表中删除列


441

给定使用以下方式创建的表:

CREATE TABLE tbl_Country
(
  CountryId INT NOT NULL AUTO_INCREMENT,
  IsDeleted bit,
  PRIMARY KEY (CountryId) 
)

如何删除列IsDeleted

Answers:


712
ALTER TABLE tbl_Country DROP COLUMN IsDeleted;

这是一个工作示例。

注意,COLUMN关键字是可选的,因为MySQL只接受DROP IsDeleted。另外,要删除多列,您必须将其用逗号分隔,并DROP为每列添加。

ALTER TABLE tbl_Country
  DROP COLUMN IsDeleted,
  DROP COLUMN CountryName;

这样一来DROP,您就可以在同一条表中的ADDALTER列上添加多个列。从MySQL参考手册中

您可以发出多个ADDALTERDROP,和CHANGE在一个单一的条款ALTER TABLE声明,用逗号分隔。这是对标准SQL的MySQL扩展,每个ALTER TABLE语句仅允许每个子句之一。


96

ALTER TABLE与with DROP COLUMN一起使用可从表中删除列,CHANGEMODIFY更改列。

ALTER TABLE tbl_Country DROP COLUMN IsDeleted;
ALTER TABLE tbl_Country MODIFY IsDeleted tinyint(1) NOT NULL;
ALTER TABLE tbl_Country CHANGE IsDeleted IsDeleted tinyint(1) NOT NULL;

您可以使用“更改”或“修改”列执行相同的操作。检查链接,该链接将为您提供使用ALTER TABLE更新列的想法
Saharsh Shah 2012年

29

要删除列,请使用此

ALTER TABLE `tbl_Country` DROP `your_col`



11

如果您正在运行MySQL 5.6或更高版本,则可以使此操作联机,从而允许其他会话在执行该操作时读写表:

ALTER TABLE tbl_Country DROP COLUMN IsDeleted, ALGORITHM=INPLACE, LOCK=NONE;

9

用途ALTER

ALTER TABLE `tbl_Country` DROP COLUMN `column_name`;

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.