Golang : Update database with GORM example
A simple tutorial on how to use GORM(Golang Object Relational Map) to connect to a MySQL/MariaDB database and UPDATE data.
Here you go!
package main
import (
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/jinzhu/gorm"
"time"
)
// Activities table SQL :
// id bigint(20) AUTO_INCREMENT
// username varchar(50)
// created_on timestamp
// action char(1)
// description varchar(300)
// visibility char(1)
// NOTE : In the struct, CreatedOn will be translated into created_on in sql level
type Activities struct {
Id int `sql:"AUTO_INCREMENT"`
Username string `sql:"varchar(50);unique"`
CreatedOn time.Time `sql:"timestamp"`
Action string `sql:"type:char(1)"`
Description string `sql:"type:varchar(300)"`
Visibility string `sql:"type:char(1)"`
}
func main() {
dbConn, err := gorm.Open("mysql", "username:password@tcp(x0.xx0.xxx.xxx:3306)/db_name?charset=utf8&parseTime=true")
if err != nil {
fmt.Println(err)
}
dbConn.DB()
dbConn.DB().Ping()
dbConn.DB().SetMaxIdleConns(10)
dbConn.DB().SetMaxOpenConns(100)
activity := Activities{
Username: "testuser",
CreatedOn: time.Now().UTC(),
Description: "Testing",
Visibility: "S",
}
dbConn.Create(&activity)
// use a clean Activities struct for update purpose
act := Activities{}
// Get the last record
dbConn.Last(&act)
fmt.Println("Before update: ", act)
fmt.Println("Created on : ", act.CreatedOn)
currentId := act.Id
fmt.Println("Current ID : ", currentId)
// update the last activity struct
act.Username = "test test test"
act.Description = "This is a test test test description"
act.Visibility = "A"
//dbConn.Save(&act) // update current id
// best practice is to include the id for the update statement
dbConn.Where("id = ?", currentId).Save(&act)
// Get the last record - again
dbConn.Last(&act)
fmt.Println("After update : ", act)
}
Sample output :
Before update: {27570 testuser 2015-07-29 03:29:44 +0000 UTC Testing S}
Created on : 2015-07-29 03:29:44 +0000 UTC
Current ID : 27570
After update : {27570 test test test 2015-07-29 03:29:44 +0000 UTC This is a test test test description A}
References :
https://github.com/jinzhu/gorm
https://www.socketloop.com/tutorials/golang-gorm-read-from-database-example
See also : Golang : GORM read from database example
By Adam Ng
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+6.5k Swift : substringWithRange() function example
+8.4k Golang : Find duplicate files with filepath.Walk
+17.1k Golang : How to make a file read only and set it to writable again?
+9.1k Golang : Convert(cast) string to int64
+10.7k Google Maps URL parameters configuration
+9.5k Golang : Check if user agent is a robot or crawler example
+8.6k Golang : Inject/embed Javascript before sending out to browser example
+18.8k Golang : Delete item from slice based on index/key position
+7k Golang : Word limiter example
+10.5k Golang : Natural string sorting example
+7.1k Golang : Rot13 and Rot5 algorithms example
+10.1k Golang : Allow Cross-Origin Resource Sharing request