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;
编辑:我四处搜索过这个,但找不到任何东西。这包括文档。
根据 here,COLUMN
是可选的,即语句是等价的。就个人而言,为了清楚起见,我会保留它
如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 是 可选的
我刚刚注意到您可以在 PostgreSQL 中编写这两个。有什么区别还是只是 "simplified" 语法。 据我所知,这两者的作用完全一样。
ALTER TABLE table DROP my_column;
对比
ALTER TABLE table DROP COLUMN my_column;
编辑:我四处搜索过这个,但找不到任何东西。这包括文档。
根据 here,COLUMN
是可选的,即语句是等价的。就个人而言,为了清楚起见,我会保留它
如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 是 可选的