При использовании dbReadTable
для чтения таблиц базы данных, использующих UUID в качестве первичного ключа, я получаю следующее предупреждающее сообщение.
1: В postgresqlExecStatement (conn, statement, ...): предупреждение драйвера RS-DBI: (нераспознанный тип поля PostgreSQL uuid (id: 2950) в столбце 0)
Когда я изменяю загруженную таблицу и пытаюсь обновить базу данных с помощью, я получаю следующее сообщение об ошибке:
Ошибка в postgresqlExecStatement (conn, statement, ...): драйвер RS-DBI: (не удалось получить результат: ОШИБКА: оператор не существует: uuid = text
Я понимаю, что тип UUID недоступен в R, но есть ли способ заставить базу данных поверить, что вектор символов "unique_id" - это UUID, а не текст?
Код:
library(RPostgreSQL)
library(postGIStools)
pgdrv <- dbDriver(drvName = "PostgreSQL")
# === open connection
db <- DBI::dbConnect(pgdrv,
dbname="database",
host="localhost", port=5432,
user = 'postgres')
# === get tables
users <- dbReadTable(db, "app_users")
# === interaction with tables
users$employee_has_quit[1:5] <- TRUE
# === update tables
postgis_update(conn = db,
df = users,
tbl = "app_users",
id_cols = "unique_id",
update_cols = "employee_has_quit")
# === close conncetion
DBI::dbDisconnect(db)
dbReadTable
, если да, то почему вы вставляете все остальное под ней? или вы получаете ошибку вpostgis_update
? - person Evan Carroll   schedule 01.10.2018