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

Laravel查询PostgreSQL自定义schema自增序列最后ID失败如何解决?

Laravel查询PostgreSQL自定义schema序列返回空的修复方案

问题根因

你在PostgreSQL中直接执行SQL时使用的是高权限账号,而Laravel配置的数据库连接账号没有自定义schema foo下序列对象的访问权限,所以会返回空数组。

修复步骤

  • 登录PostgreSQL高权限账号(如默认的postgres账号),执行以下授权操作,将命令中的laravel_db_user替换为你的Laravel项目.env文件中DB_USERNAME对应的账号名:
    1. 授予账号访问foo schema的基础权限:
    GRANT USAGE ON SCHEMA foo TO laravel_db_user;
    
    1. 授予账号读取foo schema下所有序列的权限:
    GRANT SELECT, USAGE ON ALL SEQUENCES IN SCHEMA foo TO laravel_db_user;
    
    1. (可选)配置默认权限,后续foo schema新增的序列自动授予该账号访问权限,避免重复授权:
    ALTER DEFAULT PRIVILEGES IN SCHEMA foo GRANT SELECT, USAGE ON SEQUENCES TO laravel_db_user;
    
  • 授权完成后清空Laravel配置缓存,避免旧配置影响:
    php artisan config:clear
    

验证

重新在Laravel中执行查询语句,即可正常返回序列值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:06:03