Go での一括挿入のために Gorm の `Exec` で可変引数パラメーターを正しく使用する方法

DDD
リリース: 2024-11-25 20:26:11
オリジナル
168 人が閲覧しました

How to Correctly Use Variadic Parameters with Gorm's `Exec` for Bulk Inserts in Go?

Golang で可変個引数パラメーターを使用して配列インターフェイスを結合する

Gorm を使用して一括挿入を実行しようとすると、次のエラーが発生しました。列数と指定された値が一致していません。この問題は、配列インターフェイスを使用する際のクエリの書式設定が正しくないことが原因で発生します。

解決策:

これを解決するには、「...」を使用する必要があります。スライスの要素を可変引数パラメーターを使用して関数に渡すときに使用する演算子。これは、スライス値を単一の引数として渡すのではなく、各要素を個別に渡すようにコンパイラに指示します。

tx.Exec(sqlStr, vals...)
ログイン後にコピー

説明:

Tx.Exec()関数には、func (tx *Tx) Exec(query string, args ...interface{}) (Result, error) というシグネチャがあります。これは、可変数の引数を args として指定される 2 番目のパラメーターとして渡すことができることを意味します。 「...」演算子を使用すると、vals スライスを個々の引数に展開するようにコンパイラーに指示します。

これにより、次のクエリが実行されます:

INSERT INTO city(code, name) VALUES ('XX1', 'Jakarta'),('XX2', 'Bandung')
ログイン後にコピー

以上がGo での一括挿入のために Gorm の `Exec` で可変引数パラメーターを正しく使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート