var product_sku models.TProductSku
for _, i := range strings.Split(getproduct.SpecificationValues, ",") {
product_sku.ProductId = getproduct.Id
product_sku.ProductNumber = getproduct.ProductNumber
product_sku.SpecificationValue = i
product_sku.Status = 1
if _, err := o.Insert(&product_sku); err != nil {
logs.Error(err)
return
}
msg["code"] = 200
msg["message"] = "Data insertion successful"
this.Data["json"] = msg
this.ServeJSON()
return
据说是主键没自增,但是有的!
然后百度查到说,需要初始化结构体, 不知怎么操作?
继各位大佬回答之后呢, 我贴出我的结构体:
//SKU
type TProductSku struct {
Id int `json:"id"`
ProductId int `orm:"index" json:"product_id"`
ProductNumber string `orm:"size(255)" json:"product_number"`
SpecificationValue string `orm:"null" json:"specification_value"` //规格值
Status byte `orm:"default(1)" json:"status"` //1正常 0 取消
Base
}
大概也就是我操作循环插入时, 并没有自己操作主键的插入, 所以他是自增的, 唯一的问题是, 例如我有三条数据 [{1,"123","z"},{1,"123","z"},{1,"123","z"},],循环插入第一条可以入库, 如果是空表,那么第一条的主键id 为 1 , 当插入第二条时 就显示报错 主键id 1 重复条目
问题已经解决!
还是考虑初始化的问题, 然后把
var product_sku models.TProductSku
放进for循环里, 每一次循环都去初始化化一次结构体.
不知道这样性能消耗是怎么样, 还有没有更好的办法...
但是目前来说是解决了当下的问题