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

PostGIS创建表时出现语法错误该如何解决?

错误原因排查

你的建表语句存在3处明确语法错误,以及1处可优化的类型设计问题:

  • 列定义缺少分隔逗号:Warehouse_location、Warehouse_managers、Warehouse_address三个字段的定义末尾没有加逗号分隔,SQL解析时无法识别下一行的新字段,这是触发你当前Warehouse_id附近语法错误的直接原因。
  • 含空格的列名未做转义:Warehouse_loading bays字段名中间包含空格,SQL默认将空格判定为标识符分隔符,要么将空格改为下划线(更推荐,符合SQL命名规范),要么用双引号包裹整个列名才能正常识别。
  • 最后一列尾随多余逗号:Warehouse_accesspoints VARCHAR(50)末尾多了一个逗号,建表语句的括号前不允许出现多余的分隔符。
  • (可选优化)Warehouse_capacity、Warehouse_occupied等存储数值的字段,建议用INT类型替代VARCHAR,后续做统计、计算、排序时不需要额外做类型转换,性能和可用性更高。
修正后的完整可执行SQL

这里选择将含空格的列名改为下划线格式,符合通用命名规范:

CREATE TABLE Warehouse (
    Warehouse_location  VARCHAR(25),
    Warehouse_id  VARCHAR(100),
    Warehouse_managers  VARCHAR(25),
    Warehouse_address  VARCHAR(25),
    Warehouse_capacity  INT,
    Warehouse_occupied  INT,
    Warehouse_loading_bays INT,
    Warehouse_accesspoints INT
);

INSERT INTO Warehouse Values('Vic','1235','John', '12 Sidney St',500,230,10,5);
INSERT INTO Warehouse Values('Vic','1236','Drake', '156 Can Rd',400,250,10,6);
INSERT INTO Warehouse Values('Nsw','1237','Dave', '120 Toast Ave',400,240,9,5);
INSERT INTO Warehouse Values('Vic','1238','Daniel', '99 Foot St',550,255,10,5);
INSERT INTO Warehouse Values('Nsw','1434','Chirs', '21 Jump St',500,270,9,6);
INSERT INTO Warehouse Values('Nsw','1734','Liam', '1 Bishop St',500,150,6,5);
INSERT INTO Warehouse Values('Vic','7234','Steve', '12 Bewick Grove ',440,250,3,5);
INSERT INTO Warehouse Values('Vic','8234','Bob', '23 Rannoch Wood Rd',440,250,11,5);
INSERT INTO Warehouse Values('Vic','1224','Kim', '390 Park Ave',550,250,9,6);
INSERT INTO Warehouse Values('SA','4234','Alex', '2 Grange Dr',550,250,10,5);
INSERT INTO Warehouse Values('SA','1734','Ryan', '12 Food St',500,350,10,5);

内容的提问来源于stack exchange,提问作者Baker Man

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 16:06:00