Вставьте URL-путь в базу данных, используя dbplyr

Я пытаюсь вставить URL в базу данных postgresql с помощью

db_insert_into(con, "url", "http://www.google.com")

Ошибка в файле (fn, open = "r"): не удается открыть соединение. Дополнительно: Предупреждение: в файле (fn, open = "r"): не удается открыть файл "http: /www.google.com": нет. такой файл или каталог

Как я могу решить это?

1 ответ

Решение

Вам нужно как-то указать как имя таблицы, так и имя поля. Я собираюсь догадаться, что "url" это имя поля, а имя таблицы здесь еще не определено. Но, честно говоря, не имеет значения, принимайте решение и адаптируйтесь по мере необходимости.

Ожидание db_insert_into это то, что values (третий аргумент) является data.frame или что-то, что может быть легко преобразовано в такое. Так что вы, вероятно, можете сделать:

newdata <- data.frame(url = "http://www.google.com", stringsAsFactors = FALSE)
db_insert_into(con, "tablename", newdata)

Если вы ленивый или играете в code-golf, вы можете сделать это с помощью:

db_insert_into(con, "tablename", list(url = "http://google.com"))

так как некоторые из основных методов S3 или S4 вокруг dbplyr иногда проверяю if (!is.data.frame(values)) values <- as.data.frame(values), (Но я не обязательно буду полагаться на это, обычно лучше быть явным.)

Другие вопросы по тегам