假设有一个简单的PostgreSQL数据库,其中包含一个整数数组:
CREATE TABLE foo (
id serial PRIMARY KEY,
bar integer[]
);
INSERT INTO foo VALUES(DEFAULT, '{1234567, 20, 30, 40}');
使用pq,这些值以[]uint8的数组形式被检索出来。文档说明整数类型将作为int64返回,但这是否也适用于数组呢?请参考文档。
db, err := sql.Open("postgres", "user=a_user password=your_pwd dbname=blah")
if err != nil {
fmt.Println(err)
}
var ret []int
err = db.QueryRow("SELECT bar FROM foo WHERE id=$1", 1).Scan(&ret)
if err != nil {
fmt.Println(err)
}
fmt.Println(ret)
输出:
sql: Scan error on column index 0: unsupported Scan, storing driver.Value type []uint8 into type *[]int64
[]
[]int
,但错误提示为*[]int64
。你确定你的代码与错误信息匹配吗? - Jonathan Hall