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

PostgreSQL运行含GRANT SELECT的SQL时报IN附近语法错误如何解决?

错误原因
  • 最直接的触发原因:CREATE TABLE AS语句结尾没有加分号做语句分隔,数据库解析时会把后面的GRANT语句当成CREATE TABLE语句的一部分,直接触发语法错误。
  • GRANT语句本身存在语法错误:单表授权不支持IN SCHEMA写法,该语法仅用于批量授权场景(比如给某个schema下的所有表授权)。单表指定schema只需把schema名缀在表名前即可。
修复后的完整SQL脚本
DROP TABLE IF EXISTS abc;
CREATE TABLE abc AS
SELECT title            
FROM people
WHERE title like 'ram%'; -- 补充分号分隔语句

-- 两种正确的单表授权写法二选一即可
-- 写法1:直接缀schema到表名,适配不同schema下的同名表场景
GRANT SELECT ON public.abc TO ram;
-- 写法2:当前会话默认schema就是public的话,可省略schema前缀
-- GRANT SELECT ON abc TO ram;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 11:18:05