PostgreSQL 中 "DROP COLUMN" 和 "DROP" 关键字的区别

Difference between "DROP COLUMN" and "DROP" keywords in PostgreSQL

我刚刚注意到您可以在 PostgreSQL 中编写这两个。有什么区别还是只是 "simplified" 语法。 据我所知,这两者的作用完全一样。

ALTER TABLE table DROP my_column;

对比

ALTER TABLE table DROP COLUMN my_column;

编辑:我四处搜索过这个,但找不到任何东西。这包括文档。

根据 hereCOLUMN 是可选的,即语句是等价的。就个人而言,为了清楚起见,我会保留它

documentation所述,可省略

The key word COLUMN is noise and can be omitted.

两种语法的含义相同,您希望在两种语法中进行选择,对于下面的示例,可以使用关键字COLUMN来更加清楚。

ALTER TABLE table DROP COLUMN col1, 
                  DROP COLUMN col2, 
                  DROP COLUMN col3, 
                       .... 
                  DROP COLUMN col_n;  

文档本身说明关键字COLUMN是可选的,因为 根据文档

ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
    action [, ... ]
ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
    RENAME [ COLUMN ] column_name TO new_column_name
ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
    RENAME CONSTRAINT constraint_name TO new_constraint_name
ALTER TABLE [ IF EXISTS ] name
    RENAME TO new_name
ALTER TABLE [ IF EXISTS ] name
    SET SCHEMA new_schema
ALTER TABLE ALL IN TABLESPACE name [ OWNED BY role_name [, ... ] ]
    SET TABLESPACE new_tablespace [ NOWAIT ]

where action is one of:

    ADD [ COLUMN ] column_name data_type [ COLLATE collation ] [ column_constraint [ ... ] ]
    DROP [ COLUMN ] [ IF EXISTS ] column_name [ RESTRICT | CASCADE ]

仅供参考,[]里面写的关键字表示可选

例如。 DROP [ COLUMN ] 这里 COLUMN 可选的