去批量插入返回ID不起作用

时间:2017-07-19 18:08:13

标签: postgresql go

我想批量插入一些行并使用golang获取它们的ID,这是我尝试这样做的

import (
    "database/sql"
    "fmt"
    _ "github.com/bmizerany/pq"
    "log"
)
func main() {
conn := fmt.Sprintf("host=%s user=%s password=%s dbname=%s sslmode=require", host, user, password, dbname)
d, err := sql.Open("postgres", conn)
rows, err := d.Query("INSERT INTO MYTABLE(MYCOLUMN) VALUES(1),(2),(3) RETURNING ID")
defer rows.Close()
var ids []int
for rows.Next() {
    var id int
    scan_err := rows.Scan(&id)
    fmt.Println(scan_err)
    if scan_err != nil {
        log.Fatal(scan_err)
    }
    ids = append(ids, id)
    fmt.Printf("id %d\n", id)
}
}

我的问题是ids总是为空,即使这些值在数据库中正确插入。

有趣的是以下作品

var id int
db.QueryRow("INSERT INTO MYTABLE(MYCOLUMN) VALUES(1) RETURNING ID").Scan(&id)

如何解决这个问题?

0 个答案:

没有答案