Merge 75c2f14933c785151f9c4d097232d8796498440c into d35a44c5b123c3a44c95beeff5d0f1f8bce6ed3b
This commit is contained in:
commit
6d4e086686
@ -70,8 +70,8 @@ func Create(scope *Scope) {
|
|||||||
id, err := result.LastInsertId()
|
id, err := result.LastInsertId()
|
||||||
if scope.Err(err) == nil {
|
if scope.Err(err) == nil {
|
||||||
scope.db.RowsAffected, _ = result.RowsAffected()
|
scope.db.RowsAffected, _ = result.RowsAffected()
|
||||||
if primaryField != nil && primaryField.IsBlank {
|
if autoIncrementField := scope.AutoIncrementField(); autoIncrementField != nil {
|
||||||
scope.Err(scope.SetColumn(primaryField, id))
|
scope.Err(scope.SetColumn(autoIncrementField, id))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -40,6 +40,7 @@ type StructField struct {
|
|||||||
Tag reflect.StructTag
|
Tag reflect.StructTag
|
||||||
Struct reflect.StructField
|
Struct reflect.StructField
|
||||||
IsForeignKey bool
|
IsForeignKey bool
|
||||||
|
IsAutoIncrement bool
|
||||||
Relationship *Relationship
|
Relationship *Relationship
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -148,6 +149,10 @@ func (scope *Scope) GetModelStruct() *ModelStruct {
|
|||||||
field.HasDefaultValue = true
|
field.HasDefaultValue = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if _, ok := sqlSettings["AUTO_INCREMENT"]; ok {
|
||||||
|
field.IsAutoIncrement = true
|
||||||
|
}
|
||||||
|
|
||||||
if value, ok := gormSettings["COLUMN"]; ok {
|
if value, ok := gormSettings["COLUMN"]; ok {
|
||||||
field.DBName = value
|
field.DBName = value
|
||||||
} else {
|
} else {
|
||||||
|
12
scope.go
12
scope.go
@ -109,7 +109,6 @@ func (scope *Scope) Log(v ...interface{}) {
|
|||||||
func (scope *Scope) HasError() bool {
|
func (scope *Scope) HasError() bool {
|
||||||
return scope.db.Error != nil
|
return scope.db.Error != nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (scope *Scope) PrimaryField() *Field {
|
func (scope *Scope) PrimaryField() *Field {
|
||||||
if primaryFields := scope.GetModelStruct().PrimaryFields; len(primaryFields) > 0 {
|
if primaryFields := scope.GetModelStruct().PrimaryFields; len(primaryFields) > 0 {
|
||||||
if len(primaryFields) > 1 {
|
if len(primaryFields) > 1 {
|
||||||
@ -122,6 +121,17 @@ func (scope *Scope) PrimaryField() *Field {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (scope *Scope) AutoIncrementField() *Field {
|
||||||
|
if structFields := scope.GetModelStruct().StructFields; len(structFields) > 0 {
|
||||||
|
for i := 0; i < len(structFields); i++ {
|
||||||
|
if structFields[i].IsAutoIncrement {
|
||||||
|
return scope.Fields()[structFields[i].DBName]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return scope.PrimaryField()
|
||||||
|
}
|
||||||
|
|
||||||
// PrimaryKey get the primary key's column name
|
// PrimaryKey get the primary key's column name
|
||||||
func (scope *Scope) PrimaryKey() string {
|
func (scope *Scope) PrimaryKey() string {
|
||||||
if field := scope.PrimaryField(); field != nil {
|
if field := scope.PrimaryField(); field != nil {
|
||||||
|
@ -11,7 +11,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type User struct {
|
type User struct {
|
||||||
Id int64
|
Id int64 `sql:"auto_increment"`
|
||||||
Age int64
|
Age int64
|
||||||
UserNum Num
|
UserNum Num
|
||||||
Name string `sql:"size:255"`
|
Name string `sql:"size:255"`
|
||||||
|
Loading…
x
Reference in New Issue
Block a user