golangでデータベースのテーブル構造を読み取る方法は何ですか?

Golangでは、database/sqlパッケージを使用してデータベースのテーブル構造を読み取ることができます。以下は、データベースの列名とタイプを読み取る方法を示すサンプルコードです。

package main

import (
	"database/sql"
	"fmt"

	_ "github.com/go-sql-driver/mysql"
)

func main() {
	// 连接到数据库
	db, err := sql.Open("mysql", "user:password@tcp(localhost:3306)/database")
	if err != nil {
		fmt.Println(err)
		return
	}
	defer db.Close()

	// 查询数据表结构
	rows, err := db.Query("SHOW COLUMNS FROM table_name")
	if err != nil {
		fmt.Println(err)
		return
	}
	defer rows.Close()

	// 读取每一列的名称和类型
	for rows.Next() {
		var field, typ string
		err := rows.Scan(&field, &typ)
		if err != nil {
			fmt.Println(err)
			return
		}
		fmt.Printf("Field: %s, Type: %s\n", field, typ)
	}

	if err = rows.Err(); err != nil {
		fmt.Println(err)
		return
	}
}

上記のコードの中で、user:password@tcp(localhost:3306)/database の部分をあなたのデータベース接続情報に置き換えてください。また、table_name の部分を読み込みたいデータテーブルの名前に置き換えてください。

このコードはMySQLをサンプルデータベースとして使用していますが、必要に応じて”mysql”を他のデータベースドライバ名に置き換え、接続文字列を適切に変更してください。

bannerAds