queryDropColumnsFromPostgresDbAccordingDF.R 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. #' Query to drop columns from PostgreSQL database according df column names
  2. #' @details Veergude kustutamine Postgresql andmebaasist etteantud df veergude nimede alusel.
  3. #' Andmebaasist kustutatakse df veeru nimedega kokkulangevad andmebaasi veerud.
  4. #' @param tbl The database table name.
  5. #' @param df The DataFrame name.
  6. #' @return query string.
  7. #' @seealso \code{\link{queryDropColumnsFromPostgresDbAccordingDF}},
  8. #' \code{\link{queryAddColumnsToPostgresDbAccordingDF}},
  9. #' \code{\link{queryWithoutGeom}}
  10. #' @examples \dontrun{
  11. #' # Connect with database
  12. #' tblName = "transport_tsoonid_tallinn"
  13. #' q <- queryDropColumnsFromPostgresDbAccordingDF(df = tsoonAsumLosa, tbl = tblName)
  14. #' con <- myPostgresConnect(host = conf$host, port = conf$port, user = conf$user,
  15. #' password = conf$password, dbname = conf$dbname, type = "RPostgreSQL")
  16. #' res <- DBI::dbSendQuery(conn = con, statement = q)
  17. #' DBI::dbClearResult(res)
  18. #' DBI::dbDisconnect(con)
  19. #'
  20. #' }
  21. #'
  22. #' @export
  23. #'
  24. queryDropColumnsFromPostgresDbAccordingDF <- function(df, tbl) {
  25. colnames(df) <- dfNamesToLower(df = df)
  26. # Kustutame andmebaasist need veerud.
  27. res <- sapply(1:ncol(df), function(x) {
  28. paste0("DROP COLUMN IF EXISTS ", names(df)[x])
  29. })
  30. res <- paste(res, collapse = ", ")
  31. res <- paste0("ALTER TABLE ", tbl , " ", res, "")
  32. res
  33. }