postgresql 使用table的默认前缀为public

在执行SQL语句时 涉及到表的时候一定要加public,没有public就不能执行,无法识别到表

select * from userInfo;

ERROR: 错误: 关系 "userinfo" 不存在
LINE 1: select * from userInfo;
^

执行set search_path=public语句,但还是出错

能够直接执行SQL语句直接写表名

你先看好登录的到底是哪个实例,不要跨实例访问

你对象创建在public下了,跨SCHEMA查询当然要加对应的SCHEMA名称,因为不同的SCHEMA下可以创建相同名称的对象

--设置用户u1,连入任何数据库,默认schema都为public
alter user u1 set search_path to public;