MySQL

查詢單筆

package main

import (
	"database/sql"
	"fmt"

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

func main() {
	db, err := sql.Open("mysql", "root:example@/USERS")
	if err != nil {
		panic(err.Error())
	}
	defer db.Close()
	
	rows, err := db.Query("SELECT name FROM user")
	if err != nil {
		panic(err.Error()) // proper error handling instead of panic in your app
	}
	var name string
	err = rows.Scan(&name)
	fmt.Println(name)
}

或是

宣告一個變數,之後傳變數的地址給 rows.Scan

查詢多筆

或是使用 struct

或是

確認資料是否存在

插入資料

更新資料

將 整個資料庫備份 產生 table SCHEMA 與 insert statement

https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html

可使用 mysqldump,如果在 docker 內要使用如下指令。

也可使用 mysqlpump

可能錯誤

1.通常為 schema 與資料不同,或是給的長度不夠

panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0x143b97e]

Last updated

Was this helpful?