gpt4 book ai didi

sql - 有没有办法在 golang 中使用 package database/sql 获取列的类型?

转载 作者:IT王子 更新时间:2023-10-29 01:15:46 26 4
gpt4 key购买 nike

基本上,在事先不知道查询的结果结构可能是什么的情况下,我想查询数据库,并返回这样的结构 (json-y)

// Rows
[
// Row 1
[
{ ColumnName: "id", Value: 1, Type: int },
{ ColumnName: "name", Value: "batman", Type: string },
...
],

// Row 2
[
{ ColumnName: "id", Value: 2, Type: int },
{ ColumnName: "name", Value: "superman", Type: string },
...
]
]

有没有办法在 golang 中使用包 database/sql 获取列的类型?

我怀疑我想做的是

  1. 将 interface{} 的数组设为 Column() 的大小,
  2. 然后为每一列确定它的类型,
  3. 然后用指向该类型的指针填充数组,
  4. 然后将数组传递给Scan()

这有点像来自 sqlx 的代码示例,但首先不知道数据将被填充的结构。

最佳答案

你应该可以这样做:

func printRows(rows *sql.Rows){

colTypes, err := rows.ColumnTypes()
for _,s := range colTypes {
log.Println("cols type:", s.DatabaseTypeName());
}
}

关于sql - 有没有办法在 golang 中使用 package database/sql 获取列的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17863113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com