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

PostgreSQL 9.1.18执行DO匿名块报语法错误,求解决思路

问题原因与解决方法

这个报错的核心问题在于PostgreSQL 9.1版本的DO匿名块必须显式指定编程语言,你当前的语句缺少了必要的语言声明部分。

详细说明

PostgreSQL从9.0版本开始引入了DO语句来执行匿名代码块,但9.1版本并没有为DO块设置默认的过程语言(procedural language)。而在9.2及以后的版本中,PostgreSQL默认将plpgsql作为DO块的语言,所以你可能看到过省略语言声明的示例,但这些示例在9.1里是不兼容的。

修正后的代码

把你的语句补充上LANGUAGE plpgsql声明即可正常运行:

DO $$ 
BEGIN 
    RAISE NOTICE 'Hello, World!'; 
END $$ LANGUAGE plpgsql;

额外验证

你在Aqua Data Studio和pgAdmin中都遇到同样的错误,这说明不是工具的问题,完全是版本对应的语法要求导致的。另外,PostgreSQL 9.1默认已经预装了plpgsql扩展,除非你手动卸载过,否则不需要额外安装就能使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:08:15