> 백엔드 개발 > Golang > Go\의 MySQL 드라이버를 사용하여 단일 문자열에서 여러 SQL 문을 어떻게 실행할 수 있습니까?

Go\의 MySQL 드라이버를 사용하여 단일 문자열에서 여러 SQL 문을 어떻게 실행할 수 있습니까?

Susan Sarandon
풀어 주다: 2024-12-03 17:08:10
원래의
470명이 탐색했습니다.

How Can I Execute Multiple SQL Statements in a Single String Using Go's MySQL Driver?

Go를 사용하여 단일 문자열에서 여러 SQL 문 실행

mysqldump에 의해 생성된 SQL 덤프에는 순차적으로 실행해야 하는 여러 문이 포함되어 있는 경우가 많습니다. 데이터베이스를 설정합니다. 이 작업을 처리할 수 있는 Go용 MySQL 드라이버를 찾는 것이 어려울 수 있습니다.

제한이 있는 기존 드라이버

Go-MySQL-Driver 및 MyMySQL과 같은 일반적인 드라이버는 다음을 지원하지 않습니다. 단일 문자열에서 여러 명령문을 실행합니다. 이러한 명령문을 실행하려고 하면 오류가 발생합니다.

Go-MySQL-Driver: Enabling Multi-Statement Support

go-sql-driver/mysql 드라이버는 다음을 제공합니다. multiStatements=true 연결 매개변수를 설정할 수 있도록 하여 솔루션을 제공합니다. 이 매개변수를 사용하면 단일 문자열 내에서 여러 문을 실행할 수 있습니다.

package main

import (
    "database/sql"
    "log"

    _ "github.com/go-sql-driver/mysql"
)

func main() {
    db, err := sql.Open("mysql", "user:password@(127.0.0.1:3306)/?multiStatements=true")
    if err != nil {
        log.Println(err)
    }

    sql := "DROP SCHEMA IF EXISTS foo; CREATE SCHEMA IF NOT EXISTS foo;"
    _, err = db.Exec(sql)
    if err != nil {
        log.Println(err)
    }

    db.Close()
}
로그인 후 복사

multiStatements=true로 설정하면 드라이버가 문자열의 두 문을 모두 실행하여 foo 스키마를 성공적으로 생성합니다. 드라이버 문서에서는 거래 및 기타 제한 사항과 관련된 잠재적인 문제로 인해 이 옵션을 사용하지 말라고 경고하고 있다는 점에 유의하는 것이 중요합니다.

위 내용은 Go\의 MySQL 드라이버를 사용하여 단일 문자열에서 여러 SQL 문을 어떻게 실행할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿