当使用以下命令请求公共模式表上的最后一个id时,我得到了预期的值,但它不适用于自定义模式:
>>> DB::select("SELECT last_value FROM public.users_id_seq WHERE is_called;")
=> [
{#3703
+"last_value": 4,
},
]
>>> DB::select("SELECT last_value FROM foo.users_id_seq WHERE is_called;")
=> []
当直接在PostgreSQL中执行时,这两个原始命令给出了预期值。
我该怎么修?
在PostgreSQL中,模式是一个命名空间,包含命名的数据库对象,如表、视图、索引、数据类型、函数、存储过程和运算符。一个数据库可以包含一个或多个模式,并且每个模式只属于一个数据库。两个模式可以具有共享相同名称的不同对象。因此,我认为您的问题可能是以下其中之一:
- 对象
users_id_seq
不在foo
模式中 - 您无权访问此架构
foo
或此对象users_id_seq
- 您对此架构或对象没有
select
权限