如何在PostgreSQL中删除多个列

157

我想在PostgreSQL中删除我的表中的200列。我尝试了:

ALTER TABLE my_table
DROP COLUMN col1, col2

但我遇到了这样的错误:

错误:在 "col2" 附近存在语法错误


如果我在表格中有200个列,甚至想要删除它们,我会感到担忧。如果这不只是一个例外事件,请退后一步,审视您的设计。 - Richard Huxton
这个问题是有效和有用的,但它的前提是“我想删除200列”,这一点非常夸张。如果你是一个新手SQL用户,来到这个问题,并想知道“等等,拥有甚至删除表中的200列是一种典型的做法吗?”,请放心,答案是否定的! - Mark Amery
3个回答

296

根据文档,你可以这样做:

ALTER TABLE table DROP COLUMN col1, DROP COLUMN col2;

如果您的某些列名是关键字,您可能需要在这些列名周围加上"引号。


1
对我来说不起作用。我得到了:错误:42601:在“,”附近的语法错误 - Audrey
12
你甚至可以省略“COLUMN”,使用ALTER TABLE table DROP col1, DROP col2;来删除表中的列。 - Ondrej Burkert

-1

感谢longOndrej - 以下命令对我有用,

ALTER TABLE table_name DROP COLUMN column_name_1,DROP COLUMN column_name_2,DROP COLUMN column_name_3; 

ALTER TABLE table_name DROP column_name_1,DROP column_name_2,DROP column_name_3; 

-5
这个对我有用:
alter table your_table_name drop column your_column_name;

3
他们要求多列,而不是一列。然而,你可以为每一列多次运行此操作。 - Peter Graham

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接