1
我正在使用golang和postgres。我想通過爲該用戶傳入Id來從我的表中刪除用戶。當我運行下面的代碼時,我總是變得真實。即使我傳入表中不存在的ID。這是正常的嗎?如果用戶標識不在數據庫中,DB.Exec會返回錯誤嗎?db刪除查詢總是返回true
func DeleteUser(ID int){
err = nil
_, err := DB.Exec("DELETE FROM Users WHERE user_id=$1", ID)
if err == nil {
return true
}
return false
}
這是正常的,Postgres的不一樣,如果要刪除的是不存在的行返回一個錯誤,因此Go不返回錯誤也是如此。 – mkopriva
@ mkopriva-ok,謝謝 – amanda45
如果你想確定一行是否被刪除,你可以改變你的查詢,就像這樣'err:= db.QueryRow(「DELETE FROM Users WHERE user_id = $ 1 RETURNING user_id」,ID ).Scan(&ID)',如果得到的'err'等於'sql.ErrNoRows',則零行被刪除。 – mkopriva