我用RPostgreSQL来读写数据.从任何模式中读取都可以完美地工作,但我无法编写非公共模式.例如,下面的代码在public模式中放置了一个名为myschema.tablex的表

# write dataframe to postgres 
drv <- dbDriver("PostgreSQL")
con <- dbConnect(drv, host="localhost", user="postgres", password="zzzz", dbname="mydatabase", port="5436")
if(dbExistsTable(con,"myschema.tablex")) {
  dbRemoveTable(con,"myschema.vkt_tablex")}
dbWriteTable(con,"myschema.tablex", dataframe, row.names=F)

我想做的是将表tablex放在模式myschema中.我还try 在连接中命名模式:dbname="mydatabase.myschema",并try 在前面的bug中看到的参数schemaname.

这些方法都不管用,所以我想知道是否还有其他方法可以使用.

推荐答案

创建对象的默认模式由search_path定义.一种方法是相应地设置它.例如:

SET search_path = myschema, public;

我引用manual条:

创建对象时没有指定特定目标

您还可以将其设置为default for a role,因此它会自动为该角色建立的每个连接设置.更多:

Postgresql相关问答推荐

为什么Postgres在打印时能完全缩短时间跨度?

sqlalchemy在Flask 下运行时出现无法解释的错误

使用postgres在go测试容器中使用tern迁移

JPA将没有时区的Postgres时间戳调整为服务器时区

空表上的 Postgres 意外行为

ST_Intersects 太慢

Postgres 查询指向国外数据工作者的分区表比直接查询 fdw 慢很多倍

转到 time.Time to postgresql timestamptz 无法用 time.Now() 保存

计算每行的多列中的非 NULL 元素

Cloud SQL 时间点 数据驻留

使用 pgx.CopyFrom 将 csv 数据批量插入到 postgres 数据库中

在 CentOS 上安装 psycopg2 时遇到问题

当记录包含 json 或字符串的混合时,如何防止 Postgres 中的invalid input syntax for type json

使用 pg-promise 插入多条记录

Django:按月查询组

PostgreSQL 中跨多个表的索引

pg_restore 会覆盖现有的表吗?

SQL:子查询的列太多

Ruby 中 DateTime 的毫秒分辨率

PostgreSQL - 如何在不同时区呈现日期?