SQLX を使用して PostgreSQL に構造体データを挿入する
構造体から PostgreSQL データベースにデータを直接挿入するのは、複数のフィールドを持つ大きな構造体があります。このプロセスを合理化するには、SQLX ライブラリの NamedExec 関数の使用を検討してください。
構造体の挿入に SQLX を使用する
SQLX ライブラリは、構造体から PostgreSQL にデータを挿入する簡単な方法を提供します。 。使用方法は次のとおりです:
名前付きクエリの作成:
構造体フィールド タグをプレースホルダーとして含む名前付きクエリを構築します。例:
<code class="go">query := `INSERT INTO TABLENAME(leaveid, empid, supervisorid) VALUES(:leaveid, :empid, :supervisorid)`</code>
クエリを実行します:
NamedExec 関数を使用してクエリを実行し、構造体を引数として渡します。これにより、対応する構造体フィールド値がプレースホルダーに自動的に設定されます。
<code class="go">var leave1 ApplyLeave1 _, err := db.NamedExec(query, leave1)</code>
JSON 配列の挿入
PostgreSQL に JSON 配列を挿入するには、jsonb データ型を使用できます。構造体に []jsonb フィールドを定義し、[]interface{} 型の値を割り当てます。例:
<code class="go">type ApplyLeave1 struct { CertificateInfo []interface{} `db:"certificate"` }</code>
構造体を挿入すると、SQLX は []interface{} をデータベース内の jsonb 配列に自動的に変換します。
追加の考慮事項:
証明書情報の更新:
特定の証明書情報を更新するには、次のようなクエリを使用できます。
<code class="go">query := `UPDATE TABLENAME SET certificatestatus = 'true' WHERE leaveid = ? AND certificateid = ?` _, err := db.Exec(query, leaveId, certificateId)</code>
特定の要件は異なる場合があることに注意してください。詳細については、SQLX ドキュメントと PostgreSQL ドキュメントを参照してください。
以上がSQLX を使用して Go 構造体から PostgreSQL データベースにデータを効率的に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。