Есть ли в RPostgres функция, которая создает / идентифицирует первичные ключи для таблицы в Postgres? - PullRequest
0 голосов
/ 05 февраля 2019

Мне нужно сначала определить, есть ли для таблицы созданный первичный ключ, а затем мне нужно создать этот первичный ключ, если он этого не делает, или изменить его, если это так.Существуют ли функции в RPostgres, которые будут предоставлять информацию о первичных ключах для таблицы в Postres, и есть ли функция, которая позволит мне создавать / перезаписывать первичные ключи для указанной таблицы?

Спасибо!

Я использовал dbSendQuery для создания первичного индекса с использованием SQL, но если первичный ключ уже создан, то код взрывается.Пример ниже:

keys_create_tbl <-  dbplyr::build_sql(
      "ALTER TABLE ", dplyr::sql(table_name),
      " ADD CONSTRAINT ", dplyr::sql(paste0(table_name,"_keys"))," PRIMARY KEY (",dplyr::sql(primary_keys),");
      ")
# Send the query to Postgres
RPostgres::dbSendQuery(pg_conn, keys_create_tbl)
...