一度に複数insertする場合はvaluesの後に複数書けば良いのですが
INSERT INTO テーブル名 (number, name) VALUES (13, '佐藤'), (52, '鈴木');
すべての行にON DUPLICATE KEY UPDATEを適用してPrepareを書きexecするにはどのようにすればいいのでしょうか?
db, _ := sql.Open("DB接続情報") defer db.Close() tx, _ := db.Begin() defer tx.Rollback() //↓これ以下をどうすればいいのかが知りたいです stmt, _ := tx.Prepare("INSERT INTO テーブル名 (number, name) VALUES (?, ?) ON DUPLICATE KEY UPDATE number = ?") defer stmt.Close() stmt.Exec(13, "吉田", 15, "佐藤",62, "鈴木",);
go言語1.14、mysql8で書いています
PrepareとExecを前提としている時点で全く無関係ではないと思うので Go もタグとして追加してください。
修正させていただきました
githubのgolangで7年前にopenされたissueが現在もopenのままです。
"database/sql: should support a way to perform bulk actions"
https://github.com/golang/go/issues/5171
この状況を見ると、database/sqlのPrepareでなんとかするのは2020年8月8日現在無理なのではないでしょうか?