You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL中如何创建含空格的双词列名?

解决PostgreSQL创建带空格列名的表的问题

你的代码无法运行主要有三个问题:

  • 带空格的列名错误使用了"[列名]"格式,PostgreSQL只需要用双引号直接包裹带空格的标识符,不需要额外加方括号;
  • "[Lease Start]"的列类型重复写了Date date,属于语法错误;
  • 从现有表创建表的语法不对,正确的复制结构/数据语法是CREATE TABLE ... AS SELECT,不是直接在表定义后加From maintable。

下面给出两种正确的写法:

1. 创建空表(仅定义结构)

如果只是要创建带空格列名的空表,不需要导入数据,用这段代码:

CREATE TABLE Test(
    Partner varchar(10) NULL,
    "Partner Name" varchar(200) NULL,
    "Contract Number" varchar(15) NULL,
    "Customer Name" varchar(150) NULL,
    "Lease Start" date NULL
);

2. 从maintable复制数据和对应列

如果需要从maintable中选取对应列来创建Test表并导入数据,用CREATE TABLE ... AS SELECT语法,注意原表的带空格列名也要用双引号包裹:

CREATE TABLE Test AS
SELECT
    Partner,
    "Partner Name",
    "Contract Number",
    "Customer Name",
    "Lease Start"
FROM maintable;

注意事项

使用带空格的列名后,后续对这些列进行查询、修改等操作时,必须始终用双引号包裹,否则PostgreSQL会把它们识别成多个独立的标识符,导致报错。比如查询时要写:

SELECT "Partner Name" FROM Test;

不能直接写SELECT Partner Name FROM Test。

内容的提问来源于stack exchange,提问作者Jophin Joseph

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 01:24:29