github.com/artisanhe/tools@v1.0.1-0.20210607022958-19a8fef2eb04/sqlx/presets/primary_id.go (about) 1 package presets 2 3 import ( 4 "database/sql" 5 6 "github.com/artisanhe/tools/sqlx" 7 ) 8 9 var _ interface { 10 sqlx.WithPrimaryKey 11 } = (*PrimaryID)(nil) 12 13 type PrimaryID struct { 14 ID uint64 `db:"F_id" sql:"bigint unsigned NOT NULL AUTO_INCREMENT" json:"-"` 15 } 16 17 func (id PrimaryID) PrimaryKey() sqlx.FieldNames { 18 return []string{"ID"} 19 } 20 21 func (id *PrimaryID) AfterInsert(result sql.Result) error { 22 lastInsertID, err := result.LastInsertId() 23 if err != nil { 24 return err 25 } 26 id.ID = uint64(lastInsertID) 27 return nil 28 }