Maison > développement back-end > Golang > Comment puis-je exécuter plusieurs instructions SQL dans une seule chaîne à l'aide du pilote MySQL de Go ?

Comment puis-je exécuter plusieurs instructions SQL dans une seule chaîne à l'aide du pilote MySQL de Go ?

Susan Sarandon
Libérer: 2024-12-03 17:08:10
original
470 Les gens l'ont consulté

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

Exécuter plusieurs instructions SQL dans une seule chaîne avec Go

Les dumps SQL générés par mysqldump contiennent souvent plusieurs instructions qui doivent être exécutées séquentiellement pour mettre en place une base de données. Trouver un pilote MySQL pour Go capable de gérer cette tâche peut être difficile.

Pilotes existants avec des limitations

Les pilotes courants comme Go-MySQL-Driver et MyMySQL ne prennent pas en charge exécuter plusieurs instructions dans une seule chaîne. Les tentatives d'exécution de telles instructions entraîneront des erreurs.

Go-MySQL-Driver : Activation de la prise en charge de plusieurs instructions

Le pilote go-sql-driver/mysql offre un solution en vous permettant de définir le paramètre de connexion multiStatements=true. Ce paramètre permet l'exécution de plusieurs instructions dans une seule chaîne.

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()
}
Copier après la connexion

En définissant multiStatements=true, le pilote exécutera les deux instructions de la chaîne, créant ainsi le schéma foo. Il est important de noter que la documentation du conducteur met en garde contre l'utilisation de cette option en raison de problèmes potentiels de transactions et d'autres limitations.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal