第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在數(shù)據(jù)庫(kù)插入后取回行值?

如何在數(shù)據(jù)庫(kù)插入后取回行值?

Go
HUWWW 2022-10-17 16:08:30
我正在使用 Golang 將數(shù)據(jù)插入數(shù)據(jù)庫(kù)?;旧衔业牟樵?nèi)缦滤緑ar cols = "(col1, col2, col3)"var values = "($1, $2, $3)"var query = fmt.Sprintf("INSERT INTO %s %s VALUES %s", myTable, cols, values)res, err := db.Exec(query, thing.val1, thing.val2, thing.val3)唯一可用的內(nèi)容res是 lastInsertId 和受影響的行數(shù)。但我需要的是受影響的行。原因是我將數(shù)據(jù)插入到具有 AUTOINCREMENT id 列的 psql 數(shù)據(jù)庫(kù)中 - 所以我希望將數(shù)據(jù)連同它一起返回。例如 - 使用 Java hibernate 我可以做這個(gè)答案解釋的事情。我不必重新查詢數(shù)據(jù)庫(kù)的 ID。編輯:我嘗試使用 lastInsertId 方法并收到此錯(cuò)誤此驅(qū)動(dòng)程序不支持 LastInsertId
查看完整描述

2 回答

?
SMILET

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊

假設(shè)您只想要一個(gè)名為的列中的自動(dòng)遞增值,這是使用pq 驅(qū)動(dòng)程序id的插入


var cols = "(col1, col2, col3)"

var values = "($1, $2, $3)"

var query = fmt.Sprintf(

    "INSERT INTO %s %s VALUES %s RETURNING id",

    myTable, cols, values,

)

var id int

if err := db.QueryRow(

    query,

    thing.val1, thing.val2, thing.val3,

).Scan(&id); err != nil {

    panic(err)

}

fmt.Println("ID: ", id)

對(duì)于多個(gè)插入:


var cols = "(col1, col2, col3)"

var values = "($1, $2, $3),($4, $5, $6)"

var query = fmt.Sprintf(

    "INSERT INTO %s %s VALUES %s RETURNING id",

    myTable, cols, values,

)

var ids []int

rows, err := db.Query(

    query,

    thing.val1, thing.val2, thing.val3,

    thing.val4, thing.val5, thing.val6,

)

if err != nil {

    panic(err)

}

for rows.Next() {

    var id int

    if err := rows.Scan(&id); err != nil {

        panic(err)

    }

    ids = append(ids, id)

}

fmt.Println("IDs: ", ids)


查看完整回答
反對(duì) 回復(fù) 2022-10-17
?
犯罪嫌疑人X

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊

res.LastInsertId()Postgres 驅(qū)動(dòng)程序不支持。但是,它在 MySQL 驅(qū)動(dòng)程序中受支持。


db.Exec()不會(huì)返回最后插入的 id,但db.QueryRow()會(huì)返回。


為了更好地理解,您可以參考此鏈接。


在這里,我添加了一個(gè)可能對(duì)您有所幫助的示例。


var id int

err := db.QueryRow("INSERT INTO user (name) VALUES ('John') RETURNING id").Scan(&id)

if err != nil {

...

}


查看完整回答
反對(duì) 回復(fù) 2022-10-17
  • 2 回答
  • 0 關(guān)注
  • 137 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)