package main import ( "database/sql" "fmt" "testing" _ "github.com/go-sql-driver/mysql" ) // 使用MySQL协议插入数据 func insertViaMySQL() error { // Doris MySQL连接信息 dsn := "root:mos8555@tcp(161.189.89.196:9030)/X6_STOCK_DEV" db, err := sql.Open("mysql", dsn) if err != nil { return fmt.Errorf("连接数据库失败: %v", err) } defer db.Close() // 测试连接 err = db.Ping() if err != nil { return fmt.Errorf("数据库连接测试失败: %v", err) } fmt.Println("✅ 成功连接到Doris MySQL") // 插入数据 query := "INSERT INTO A3_CLOTHING (col1, col2, col3) VALUES (?, ?, ?)" result, err := db.Exec(query, "EWE322Y2060049145", 2021, "Y-连衣裙") if err != nil { return fmt.Errorf("插入数据失败: %v", err) } rowsAffected, err := result.RowsAffected() if err != nil { return fmt.Errorf("获取影响行数失败: %v", err) } fmt.Printf("✅ 数据插入成功,影响行数: %d\n", rowsAffected) return nil } // 先检查表结构 func checkTableSchema() error { dsn := "root:mos8555@tcp(161.189.89.196:9030)/X6_STOCK_DEV" db, err := sql.Open("mysql", dsn) if err != nil { return err } defer db.Close() // 查询表结构 rows, err := db.Query("DESC A3_CLOTHING") if err != nil { return fmt.Errorf("查询表结构失败: %v", err) } defer rows.Close() fmt.Println("=== A3_CLOTHING 表结构 ===") for rows.Next() { var field, fieldType, isNull, key, defaultValue, extra string err := rows.Scan(&field, &fieldType, &isNull, &key, &defaultValue, &extra) if err != nil { return err } fmt.Printf("字段: %s, 类型: %s, 允许空: %s\n", field, fieldType, isNull) } return nil } // 测试函数 func TestMySQLInsert(t *testing.T) { fmt.Println("=== 使用MySQL协议插入数据 ===") // 先检查表结构 err := checkTableSchema() if err != nil { t.Fatalf("检查表结构失败: %v", err) } // 插入数据 err = insertViaMySQL() if err != nil { t.Fatalf("MySQL插入失败: %v", err) } fmt.Println("✅ 通过MySQL协议插入数据成功!") }