鉴于使用以下方式创建的表:
CREATE TABLE tbl_Country
(
CountryId INT NOT NULL AUTO_INCREMENT,
IsDeleted bit,
PRIMARY KEY (CountryId)
)
如何删除列IsDeleted
?
答案 0 :(得分:679)
ALTER TABLE tbl_Country DROP COLUMN IsDeleted;
Here's一个有效的例子。
请注意,COLUMN
关键字是可选的,因为MySQL只接受DROP IsDeleted
。另外,要删除多个列,您必须用逗号分隔它们,并为每个列添加DROP
。
ALTER TABLE tbl_Country
DROP COLUMN IsDeleted,
DROP COLUMN CountryName;
这允许您在一个语句中的同一个表上的DROP
,ADD
和ALTER
多个列。来自MySQL reference manual:
您可以在单个
ADD
语句中发出多个ALTER
,DROP
,CHANGE
和ALTER TABLE
子句,以逗号分隔。这是标准SQL的MySQL扩展,每个ALTER TABLE
语句只允许每个子句中的一个。
答案 1 :(得分:89)
使用ALTER TABLE
与DROP COLUMN
一起删除表格中的列,CHANGE
或MODIFY
更改列。
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;
答案 2 :(得分:40)
要从表中删除单个列,您可以使用:
ALTER TABLE table_name DROP COLUMN Column_name;
要删除多个列,请执行以下操作:
ALTER TABLE table_name DROP COLUMN Column_name, DROP COLUMN Column_name;
答案 3 :(得分:26)
删除表格中的列。
ALTER TABLE tbl_Country DROP COLUMN IsDeleted1, DROP COLUMN IsDeleted2;
或者没有'COLUMN'字样
ALTER TABLE tbl_Country DROP IsDeleted1, DROP IsDeleted2;
答案 4 :(得分:24)
要删除列,请使用
ALTER TABLE `tbl_Country` DROP `your_col`
答案 5 :(得分:15)
您可以使用
alter table <tblname> drop column <colname>
答案 6 :(得分:11)
ALTER TABLE `tablename` DROP `columnname`;
或者,
ALTER TABLE `tablename` DROP COLUMN `columnname`;
答案 7 :(得分:7)
使用ALTER
:
ALTER TABLE `tbl_Country` DROP COLUMN `column_name`;
答案 8 :(得分:6)
ALTER TABLE tbl_Country DROP columnName;
答案 9 :(得分:6)
ALTER TABLE `tbl_Country` DROP `IsDeleted`;
答案 10 :(得分:6)
如果您正在运行MySQL 5.6,您可以在线执行此操作,允许其他会话在执行操作时读取和写入您的表:
ALTER TABLE tbl_Country DROP COLUMN IsDeleted, ALGORITHM=INPLACE, LOCK=NONE;
答案 11 :(得分:3)
ALTER TABLE table_name DROP COLUMN column_name
答案 12 :(得分:0)
当我们执行从表中删除列的操作时,它会更改表的结构。为了执行这种操作,我们需要使用数据定义语言(DDL)语句。在这种情况下,我们必须使用ALTER语句。
ALTER - 改变数据库的结构
查询将是 -
alter table tbl_Country drop column IsDeleted;
答案 13 :(得分:0)
值得一提的是,MySQL 8.0.23 及以上版本支持Invisible Columns
CREATE TABLE tbl_Country(
CountryId INT NOT NULL AUTO_INCREMENT,
IsDeleted bit,
PRIMARY KEY (CountryId)
);
INSERT INTO tbl_Country VALUES (1, 1), (2,0);
ALTER TABLE tbl_Country ALTER COLUMN IsDeleted SET INVISIBLE;
SELECT * FROM tbl_Country;
CountryId
1
2
ALTER TABLE tbl_Country DROP COLUMN IsDeleted;
在需要暂时“隐藏”一列才能安全删除(例如返工相应的应用程序/报告等)的情况下,它可能很有用。