ホームページ > バックエンド開発 > Golang > Go の `github.com/go-sql-driver/mysql` ドライバーを使用して単一の文字列で複数の SQL ステートメントを実行するにはどうすればよいですか?

Go の `github.com/go-sql-driver/mysql` ドライバーを使用して単一の文字列で複数の SQL ステートメントを実行するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-28 13:34:11
オリジナル
768 人が閲覧しました

How Can I Execute Multiple SQL Statements in a Single String Using Go's `github.com/go-sql-driver/mysql` Driver?

Go を使用した 1 つの文字列内の複数の SQL ステートメント

PHP では、複数の SQL ステートメントを で区切ることにより、一度に簡単に実行できます。セミコロン。ただし、この機能を提供する Go 用の MySQL ドライバーを見つけるのは難しい場合があります。

人気のあるドライバーの 1 つである github.com/go-sql-driver/mysql は、当初、この点で制限に直面していました。ただし、ドキュメントによると、multiStatements=true 接続パラメーターを通じて複数のステートメントがサポートされるようになりました。

これを示すために、変更されたコード スニペットを次に示します。

package main

import (
    "database/sql"
    "fmt"
    "log"

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

func main() {
    // Create a connection string with multiStatements enabled
    connectionString := fmt.Sprintf("user:password@(127.0.0.1:3306)/?multiStatements=true")

    db, err := sql.Open("mysql", connectionString)
    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()
}
ログイン後にコピー

この変更により、複数の SQL ステートメントがSQL 文字列は 1 回の呼び出しで実行され、以前に発生した「エラー 1064」が解消されます。

で複数のステートメントを使用することに注意してください。 1 つの文字列には、予期しない結果が生じる可能性があるため、注意して扱う必要があります。 github.com/go-sql-driver/mysql の公式ドキュメントには、このトピックの詳細が記載されています。

以上がGo の `github.com/go-sql-driver/mysql` ドライバーを使用して単一の文字列で複数の SQL ステートメントを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート