Nessuna descrizione
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

my2_test.go 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package main
  2. import (
  3. "database/sql"
  4. "fmt"
  5. "testing"
  6. _ "github.com/go-sql-driver/mysql"
  7. )
  8. // 使用MySQL协议插入数据
  9. func insertViaMySQL() error {
  10. // Doris MySQL连接信息
  11. dsn := "root:mos8555@tcp(161.189.89.196:9030)/X6_STOCK_DEV"
  12. db, err := sql.Open("mysql", dsn)
  13. if err != nil {
  14. return fmt.Errorf("连接数据库失败: %v", err)
  15. }
  16. defer db.Close()
  17. // 测试连接
  18. err = db.Ping()
  19. if err != nil {
  20. return fmt.Errorf("数据库连接测试失败: %v", err)
  21. }
  22. fmt.Println("✅ 成功连接到Doris MySQL")
  23. // 插入数据
  24. query := "INSERT INTO A3_CLOTHING (col1, col2, col3) VALUES (?, ?, ?)"
  25. result, err := db.Exec(query, "EWE322Y2060049145", 2021, "Y-连衣裙")
  26. if err != nil {
  27. return fmt.Errorf("插入数据失败: %v", err)
  28. }
  29. rowsAffected, err := result.RowsAffected()
  30. if err != nil {
  31. return fmt.Errorf("获取影响行数失败: %v", err)
  32. }
  33. fmt.Printf("✅ 数据插入成功,影响行数: %d\n", rowsAffected)
  34. return nil
  35. }
  36. // 先检查表结构
  37. func checkTableSchema() error {
  38. dsn := "root:mos8555@tcp(161.189.89.196:9030)/X6_STOCK_DEV"
  39. db, err := sql.Open("mysql", dsn)
  40. if err != nil {
  41. return err
  42. }
  43. defer db.Close()
  44. // 查询表结构
  45. rows, err := db.Query("DESC A3_CLOTHING")
  46. if err != nil {
  47. return fmt.Errorf("查询表结构失败: %v", err)
  48. }
  49. defer rows.Close()
  50. fmt.Println("=== A3_CLOTHING 表结构 ===")
  51. for rows.Next() {
  52. var field, fieldType, isNull, key, defaultValue, extra string
  53. err := rows.Scan(&field, &fieldType, &isNull, &key, &defaultValue, &extra)
  54. if err != nil {
  55. return err
  56. }
  57. fmt.Printf("字段: %s, 类型: %s, 允许空: %s\n", field, fieldType, isNull)
  58. }
  59. return nil
  60. }
  61. // 测试函数
  62. func TestMySQLInsert(t *testing.T) {
  63. fmt.Println("=== 使用MySQL协议插入数据 ===")
  64. // 先检查表结构
  65. err := checkTableSchema()
  66. if err != nil {
  67. t.Fatalf("检查表结构失败: %v", err)
  68. }
  69. // 插入数据
  70. err = insertViaMySQL()
  71. if err != nil {
  72. t.Fatalf("MySQL插入失败: %v", err)
  73. }
  74. fmt.Println("✅ 通过MySQL协议插入数据成功!")
  75. }