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 サイトの他の関連記事を参照してください。