網頁

2022/12/22

Golang GORM 新增資料 insert data

Go使用GORM ORM套件新增資料至資料庫的方式如下。


範例環境:

  • Go 1.19
  • GORM 2.0 (gorm.io/gorm v1.24.2)
  • PostgreSQL 14


事前要求

參考「Golang GORM PostgreSQL基本設定」設定資料庫及安裝GORM套件。


範例

GORM使用gorm.DB.Create(value interface{})來新增資料,輸入參數為要新增的model pointer。

例如下面將一筆Employeegorm.DB.Create新增到資料表employee並返回操作後的gorm.DB物件。

新增後的Employee.ID可取得資料庫自動遞增的主鍵編號。

呼叫操作後的gorm.DB.Error返回操作錯誤,若成功則為nil。

呼叫操作後的gorm.DB.RowsAffected可返回新增的筆數。

main.go

package main

import (
    "fmt"
    "time"

    "gorm.io/driver/postgres"
    "gorm.io/gorm"
    "gorm.io/gorm/schema"
)

type Employee struct {
    ID        int64     // primary key, column name is `id`
    Name      string    // column name is `name`
    Age       int       // column name is `age`
    CreatedAt time.Time // column name is `created_at`
}

const (...)

func getGormDB() *gorm.DB {...}

func main() {
    db := getGormDB()

    emp := Employee{
        Name:      "tony",
        Age:       45,
        CreatedAt: time.Now(),
    }

    result := db.Create(&emp) // INSERT INTO employee (name, age, created_at) VALUES ("tony", 45, "2022-12-22 22:05:09.83327")

    fmt.Println(emp.ID)              // 3
    fmt.Println(result.Error)        // nil
    fmt.Println(result.RowsAffected) // 1

    fmt.Println(emp) // {3 tony 45 2022-12-22 22:05:09.83327 +0800 CST m=+0.021885415}
}

github



沒有留言:

張貼留言