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

PostgreSQL使用变量向未创建表插入数据时触发语法错误求助

问题解决:PostgreSQL DO块变量声明语法错误

你的报错根源是DO块中变量声明的语法不正确,PostgreSQL要求在DO块里必须用DECLARE关键字来定义变量,不能直接把变量赋值写在BEGIN块内部。解析器因为语法错误无法正确识别美元引号的结束位置,所以报了"unterminated dollar-quoted string"的错误。

修正后的代码如下:

-- Declare variables correctly in DO block
DO $$
DECLARE
    v_version_ID            INT := 1;
    v_version_number        VARCHAR(255) := '1.0';
    v_version_creation_date DATE := '2024-01-29';
    v_version_close_date    DATE := '9999-12-31';
BEGIN
    -- Insert values using variables
    INSERT INTO attendence_list (version_ID, version_number, version_creation_date, version_close_date)
    VALUES (v_version_ID, v_version_number, v_version_creation_date, v_version_close_date);
END $$;

-- Select data from the table
SELECT * FROM attendence_list;

关键修正点:

  • 新增DECLARE关键字,把所有变量定义放在BEGIN块之前,这是PostgreSQL PL/pgSQL块的标准语法结构。
  • 移除了不必要的内层BEGIN/END嵌套,你的场景不需要额外的子块。

执行修正后的代码后,变量就能被正确识别,插入操作可以正常执行。

内容的提问来源于stack exchange,提问作者8indie8

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 08:30:59