>  기사  >  백엔드 개발  >  Go의 pq 패키지를 사용하여 STDIN에서 PostgreSQL로 데이터를 가져오는 방법은 무엇입니까?

Go의 pq 패키지를 사용하여 STDIN에서 PostgreSQL로 데이터를 가져오는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-24 18:34:31883검색

How to Import Data from STDIN to PostgreSQL Using Go's pq Package?

STDIN에서 Postgresql로 행을 어떻게 가져오나요? [중복]

Go에서는 pq 패키지를 사용하여 STDIN에서 PostgreSQL로 행을 가져올 수 있습니다. 단계별 해결 방법은 다음과 같습니다.

1단계: 데이터베이스 연결 준비

<code class="go">import (
    "database/sql"

    "github.com/lib/pq"
)

db, err := sql.Open("postgres", "dbname=mydb user=myuser password=mypassword")
if err != nil {
    log.Fatalf("open: %v", err)
}</code>

2단계: 트랜잭션 시작

<code class="go">txn, err := db.Begin()
if err != nil {
    log.Fatalf("begin: %v", err)
}</code>

3단계: 준비 Copy 문

pq.CopyIn()을 사용하여 준비된 문을 만듭니다.

<code class="go">stmt, err := txn.Prepare(pq.CopyIn("test_table", "column1", "column2", ...))
if err != nil {
    log.Fatalf("prepare: %v", err)
}</code>

4단계: Copy 문 실행

데이터를 반복하고 stmt를 실행합니다. .Exec() 각 행에 대해.

<code class="go">for _, row := range rows {
    _, err = stmt.Exec(row.Column1, row.Column2, ...)
    if err != nil {
        log.Fatalf("exec: %v", err)
    }
}</code>

5단계: 최종 복사 문 실행

<code class="go">_, err = stmt.Exec()
if err != nil {
    log.Fatalf("exec: %v", err)
}</code>

6단계: 문 닫기 및 트랜잭션 커밋

<code class="go">stmt.Close()
err = txn.Commit()
if err != nil {
    log.Fatalf("commit: %v", err)
}</code>

이 코드는 STDIN에서 PostgreSQL 테이블로 행을 효율적으로 가져옵니다.

위 내용은 Go의 pq 패키지를 사용하여 STDIN에서 PostgreSQL로 데이터를 가져오는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.