xorm插入數據庫後返回主鍵自增id
阿新 • • 發佈:2018-12-08
分享 utf8 mage span import bsp ima utf orm
golang使用xorm連接數據庫後,插入結構體,無法返回自增主鍵id,飯後的主鍵id都是0。經過研究發現,如果給結構體id設置xorm tag,則會默認id為0,不會返回插入成功後的主鍵id。
xorm文檔中如下描述
1 package main 2 3 import ( 4 "fmt" 5 "time" 6 7 _ "github.com/go-sql-driver/mysql" 8 "github.com/go-xorm/xorm" 9 ) 10 11 type User struct { 12 // 如果此處 `xorm:"id"`,則插入數據的時候,會默認為0,插入成功後不會把新插入的id返回,如果想得到插入後的主鍵id,則id不需要寫`xorm:"id"`13 Id int64 //`xorm:"id"` 14 Name string `xorm:"name"` 15 Created time.Time `xorm:"created"` 16 Updated time.Time `xorm:"updated"` 17 Deleted time.Time `xorm:"deleted"` 18 } 19 20 // 設置user結構體對應的表名 21 func (User) TableName() string { 22 return "test_user_2" 23 } 2425 func main() { 26 engine, err := xorm.NewEngine("mysql", "root:123456@tcp(10.10.30.99:3306)/test?charset=utf8") 27 if err != nil { 28 fmt.Println("connect mysql is failed, err:", err) 29 } 30 31 u := &User{ 32 Name: "aaa", 33 } 34 // 可插入多條engine.Insert(u1,u2)35 affecte, err := engine.Insert(u) 36 if err != nil { 37 fmt.Println("insert is failed,err:", err) 38 } 39 fmt.Println("affect=", affecte, u.Id) 40 }
xorm插入數據庫後返回主鍵自增id