PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

मैं ऑटोइनक्रिकमेंटिंग प्राथमिक कुंजी के साथ आर से पोस्टग्रेएसक्यूएल टेबल पर डेटा कैसे लिखूं?

hrbrmstr की टिप्पणी में सूत्र से, मुझे यह काम करने के लिए एक हैक मिला।

postgresqlWriteTable . में RPostgreSQL . में पैकेज, आपको लाइन को बदलने की जरूरत है

sql4 <- paste("COPY", postgresqlTableRef(name), "FROM STDIN")

के साथ

sql4 <- paste(
  "COPY ", 
  postgresqlTableRef(name), 
  "(", 
  paste(postgresqlQuoteId(names(value)), collapse = ","), 
  ") FROM STDIN"
)

ध्यान दें कि केस-संवेदी कॉलम नामों को पास करने के लिए चरों का उद्धरण (मूल हैक में शामिल नहीं) आवश्यक है।

ऐसा करने के लिए यहां एक स्क्रिप्ट है:

body_lines <- deparse(body(RPostgreSQL::postgresqlWriteTable))
new_body_lines <- sub(
  'postgresqlTableRef(name), "FROM STDIN")', 
  'postgresqlTableRef(name), "(", paste(shQuote(names(value)), collapse = ","), ") FROM STDIN")', 
  body_lines,
  fixed = TRUE
)
fn <- RPostgreSQL::postgresqlWriteTable
body(fn) <- parse(text = new_body_lines)
while("RPostgreSQL" %in% search()) detach("package:RPostgreSQL")
assignInNamespace("postgresqlWriteTable", fn, "RPostgreSQL")


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्टग्रेएसक्यूएल क्रिएट फंक्शन

  2. फ्लैट जेसनबी सरणी के तत्वों पर क्वेरी पसंद करें

  3. PostgreSQL 9.0 को Windows सेवा के रूप में पंजीकृत करें और चलाएं

  4. PostgreSQL प्राथमिक कुंजी को 1 . पर रीसेट करें

  5. pgpredict - PostgreSQL में भविष्य कहनेवाला विश्लेषण