gpt4 book ai didi

r - 在 PostgreSQL 中使用 r sf::st_write 到非公共(public)模式

转载 作者:行者123 更新时间:2023-11-29 11:32:34 25 4
gpt4 key购买 nike

我正在尝试将空间表写入不是 PostgreSQL 数据库中默认公共(public)模式的模式。

library(sf)
library(DBI)
library(RPostgreSQL)
library(spData)

# PostgreSQL DB parameters
host <- "myHost"
port <- 5432
username <- "myName"
dbname <- "myDb"
password <- "MyPassword"

# Connect to db
conn <- dbConnect(PostgreSQL(), dbname = dbname, host = host, port = port, user = username, password = password)

st_write(obj = cycle_hire, dsn = conn, Id(schema="myOtherSchema", table = "myCycle")) # Write data to db - currently only writes to default schema

# Disconnect db
dbDisconnect(conn)

但这会将我的表添加到名称为 "myOtherSchema"."myCycle" 的公共(public)架构中。

上面也试过...

dbWriteTable(conn = conn, name = "myCycle", value = cycle_hire, Id(schema="mySchema"))

...替换 st_write,这导致 myCycle 被写入公共(public)模式。

我做错了什么?

session 信息:

R version 3.4.4 (2018-03-15)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows Server >= 2012 x64 (build 9200)

在 Centos 7 操作系统上运行 PostgreSQL 11.1。

最佳答案

发生这种情况是因为您正在通过包 RPostgreSQL 连接到数据库,但是用于指定表和模式的语法与包 RPostgres 建立的连接一起使用。您可以使用以下方法解决此问题:

    require(RPostgres)
conn <- dbConnect(Postgres(), dbname = dbname, host = host, port = port,
user = username, password = password)
st_write(obj = cycle_hire, dsn = conn, Id(schema="roads_spatial", table = "myCycle"))

关于r - 在 PostgreSQL 中使用 r sf::st_write 到非公共(public)模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54202315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com