Maison >développement back-end >Golang >Comment puis-je exécuter plusieurs instructions SQL dans une seule chaîne à l'aide du pilote `github.com/go-sql-driver/mysql` de Go ?

Comment puis-je exécuter plusieurs instructions SQL dans une seule chaîne à l'aide du pilote `github.com/go-sql-driver/mysql` de Go ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-28 13:34:11768parcourir

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

Plusieurs instructions SQL dans une seule chaîne avec Go

En PHP, il est simple d'exécuter plusieurs instructions SQL en une seule fois en les séparant par un point-virgule. Cependant, trouver un pilote MySQL pour Go offrant cette fonctionnalité peut s'avérer difficile.

Un pilote populaire, github.com/go-sql-driver/mysql, a d'abord été confronté à des limitations à cet égard. Mais selon la documentation, il prend désormais en charge plusieurs instructions via le paramètre de connexion multiStatements=true.

Voici un extrait de code modifié pour démontrer :

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()
}

Avec cette modification, plusieurs instructions SQL dans la chaîne SQL sera exécutée en un seul appel, éliminant "l'erreur 1064" rencontrée précédemment.

N'oubliez pas que l'utilisation de plusieurs instructions dans une chaîne doit être abordée avec prudence, car elle peut avoir des résultats imprévisibles. La documentation officielle de github.com/go-sql-driver/mysql fournit plus de détails sur ce sujet.

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!

Déclaration:
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