postgresql 如何在gorm中插入空外键?

a5g8bdjr  于 2023-06-22  发布在  PostgreSQL
关注(0)|答案(2)|浏览(215)

我在gorm中有一个事务表,看起来像这样:

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的trade。
我该怎么做?

nafvub8i

nafvub8i1#

您可以将TradeID更改为指针,因此默认值为nil

TradeID     *int
gkl3eglg

gkl3eglg2#

使用gorm结构注解:gorm:“default:null”而不是指针。
AccountChangeCategoryID可能为null的示例:

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"`
}

相关问题