Dans PostgreSQL, insérer directement des structures dans la base de données n'est pas simple si les champs de structure sont complexes ou incluent du JSON tableaux. Cependant, en utilisant des bibliothèques externes, vous pouvez obtenir des fonctionnalités d'insertion de manière plus efficace.
La bibliothèque sqlx (github.com/jmoiron/sqlx) fournit une solution élégante à ce problème. Pour l'utiliser, marquez d'abord chaque champ de structure avec une balise db pour spécifier son nom de champ de base de données.
<code class="go">type ApplyLeave1 struct { LeaveId int `db:"leaveid"` EmpId string `db:"empid"` SupervisorEmpId string `db:"supervisorid"` // ... other fields }</code>
Ensuite, utilisez la fonction NamedExec dans sqlx pour insérer la structure entière dans la base de données.
<code class="go">import ( "github.com/jmoiron/sqlx" "log" ) query := `INSERT INTO TABLENAME(leaveid, empid, supervisorid, ...) VALUES(:leaveid, :empid, :supervisorid, ...)` var leave1 ApplyLeave1 db, err := sqlx.Connect("postgres", "user=foo dbname=bar sslmode=disable") if err != nil { log.Fatalln(err) } _, err = db.NamedExec(query, leave1) if err != nil { log.Fatalln(err) }</code>
Insertion de tableaux JSON
Pour gérer les tableaux JSON dans les structures, vous pouvez utiliser le type de données tableau de PostgreSQL en marquant le champ avec db:"array".
<code class="go">type CertificateInfo struct { Id int64 `db:"id"` FileName string `db:"filename"` FileType string `db:"filetype"` FileLocation string `db:"filelocation"` } type ApplyLeave1 struct { // ... other fields Certificates []CertificateInfo `db:"certificates,array"` }</code>
En suivant ces étapes, vous pouvez insérer de manière transparente des structures complexes, y compris des tableaux JSON, dans les bases de données PostgreSQL, simplifiant ainsi votre code et améliorant l'efficacité de l'insertion des données.
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!