나는 데이터를 읽고 쓰는 데 RPostgreSQL을 사용하고 있습니다. 모든 스키마 읽기는 완벽하게 작동하지만 비공개 스키마에 쓸 수는 없습니다. 예를 들어, 다음 코드는 내가 원하는 어떤 이름 myschema.tablex
RPostgreSQL을 사용하여 특정 스키마에 쓰기
# 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)
과 함께 public
스키마에 테이블을 배치, 스키마 myschema
테이블 tablex
을 배치하는 것입니다. 또한 연결의 스키마 이름을 dbname="mydatabase.myschema"
으로하고 이전 버그에서 언급 한 schemaname
을 시도했습니다.
이러한 접근법 중 어느 것도 작동하지 않으므로 사용할 수있는 다른 방법이 있는지 궁금합니다.
감사 @Erwin. 5 개의 스키마가있는 경우 원하는 순서로 나열하거나 'R'이 사용하기 원하는 스키마 만 나열해야합니까? – djq
@celenius : 모두 나열 할 필요는 없습니다. 현재 역할이 접근 할 수있는'search_path'의 첫번째 스키마는 * 객체 생성 *에 사용될 것입니다. 모든 객체는 발견 될 때까지 객체를 찾기 위해 * 검색됩니다. 더 이상의 스키마는 보이지 않습니다. 시스템 스키마에는 특별한 규칙이 적용됩니다. 파일 시스템의 검색 경로와 매우 비슷합니다. 매뉴얼에 나와 있습니다. –
그러나 create에 tablename을 접두사로 사용하는 스키마도 잘 작동해야합니다. ie : create schema test; create table test.abc (i int); \ d test.abc –