使用 postgres 9.3
和 go 1.6
。
我一直在尝试使用 go
的 pq
库进行事务处理。
// Good
txn, _ := db.Begin()
txn.Query("UPDATE t_name SET a = 1")
err := txn.Commit() // err is nil
// Bad
txn, _ := db.Begin()
txn.Query("UPDATE t_name SET a = $1", 1)
err := txn.Commit() // Gives me a "unexpected command tag Q" error
// although the data is committed
由于某种原因,当我执行带参数的
Query
时,总是从Commit()
收到一个“unexpected command tag Q”的错误。这个错误是什么意思(Q代表什么?)以及为什么会出现这个错误?我认为这里是错误发生的地方。
db.Begin()
和txn.Query()
的错误返回;在txn.Commit()
之前,这两者中的一个可能存在错误,可能会为问题提供一些线索。 - John Weldon