teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

追加

2020/06/05 06:01

投稿

hello_whats_up
hello_whats_up

スコア57

title CHANGED
File without changes
body CHANGED
@@ -7,4 +7,32 @@
7
7
  stmt, err := db.Prepare("INSERT table SET unique_id=? ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id)")
8
8
  res, err := stmt.Exec(unique_id)
9
9
  lid, err := res.LastInsertId()
10
- ```
10
+ ```
11
+
12
+ ## 追記
13
+ 現状下記のようなinsertメソッドにしていて、ここからinsertした場合のidを取得したいです。
14
+ ```
15
+ func (p *Postgres) InsertHoge(tx *sqlx.Tx, hoge models.Hoge) (models.Hoge, error) {
16
+
17
+ query, args, err := sq.StatementBuilder.PlaceholderFormat(sq.Dollar).
18
+ Insert(`"hoge"`).
19
+ Columns(
20
+ `"title"`,
21
+ ).
22
+ Values(
23
+ hoge.Title,
24
+ ).
25
+ ToSql()
26
+
27
+ if err != nil {
28
+ return hoge, err
29
+ }
30
+
31
+ if err := tx.Get(&hoge, query, args...); err != nil {
32
+ return hoge, err
33
+ }
34
+
35
+ return hoge, nil
36
+ ```
37
+
38
+ }