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!