我有一个格式的事务表,看起来像这样:
type Transaction struct {
gorm.Model
UserID string `gorm:"index"`
TradeID int
Trade Trade
ExternalID string
Amount float32
Type string
Description string
}
我正在尝试插入一个没有交易的交易:
DB.Create(&Transaction{UserID: "user-1", Type: "unblock", Amount: 50})
由于Transaction结构将键的int值默认为0,因此插入在db级别失败,因为我没有id = 0的交易。
我该怎么做?
您可以将TradeID
更改为指针,因此默认值为nil
。
TradeID *int
using gorm struct annotation: gorm:"default:null"而不是指针。
AccountChangeCategoryID可以为空的示例:
type AccountChange struct {
general.Model
/*
If positive - income
If negative - expense
*/
Value float64 `json:"value"`
Name string `json:"name"`
AccountID uint `json:"account_id"`
AccountChangeCategoryID uint `json:"category_id" gorm:"default:null"`
}