gpt4 book ai didi

sql - 为什么我的代码错误(mssql : Violation of PRIMARY KEY constraint 'PK_SMSBlast2' . 无法在对象 'dbo.SMSBlast2' 中插入重复键)?

转载 作者:数据小太阳 更新时间:2023-10-29 03:20:30 27 4
gpt4 key购买 nike

我的代码有问题,我正在使用库 GORM 创建数据或将数据插入到我的 restful api,打印错误如下所示:(mssql: Violation of PRIMARY KEY constraint 'PK_SMSBlast2'. 无法在其中插入重复键对象 'dbo.SMSBlast2'。重复键值为 (0)。)

主要包

import (
"encoding/json"
"fmt"
"github.com/gorilla/mux"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/mssql"
"log"
"net/http"
"time"
)

键入 SMSBlast 结构 { 序列 ID int gorm:"column:SequenceID" 手机字符串 gorm:"column:MobilePhone" 输出字符串 gorm:"column:Output" WillBeSentDate *time.Time gorm:“列:WillBeSentDate” 发送日期 *time.Time gorm:"column:SentDate" 状态 *string gorm:"column:Status" DtmUpd 时间.Time gorm:"column:DtmUpd"

func (SMSBlast) TableName() string {
return "SMSBlast2"
}


func insertSMSBlast(w http.ResponseWriter, r *http.Request){
fmt.Println("New Insert Created")

db, err := gorm.Open("mssql", "sqlserver://sa:@localhost:1433?database=CONFINS")
if err != nil{
panic("failed to connect database")
}
defer db.Close()

vars := mux.Vars(r)
sequenceid := vars["sequenceid"]
mobilephone := vars["mobilephone"]
output := vars["output"]
dtmupd := vars["dtmupd"]


sequenceid1,_ := strconv.Atoi(sequenceid)
prindata := db.Create(&SMSBlast{SequenceID: sequenceid1,MobilePhone: mobilephone, Output:output, DtmUpd: time.Now()})
fmt.Println(prindata)


}

func handleRequests(){
myRouter := mux.NewRouter().StrictSlash(true)
myRouter.HandleFunc("/smsblaststest",allSMSBlasts).Methods("POST")
myRouter.HandleFunc("/smsblaststestInsert/{MobilePhone}/{DtmUpd}", insertSMSBlast).Methods("POST")
log.Fatal(http.ListenAndServe(":8080",myRouter))

}

func main(){
fmt.Println("SMSBLASTS ORM")
handleRequests()
}

最佳答案

看来对于您的表,SequenceID 是主键。

你的插入语句

 db.Create(&SMSBlast{MobilePhone: mobilephone, Output:output, DtmUpd: time.Now()})

不更新 SequenceID 字段,因此默认为零。那会导致您违反主键。尝试使 SequenceID 成为身份字段(将自动递增)或修复您的代码以确定下一个序列号并将其添加到您的创建语句中

关于sql - 为什么我的代码错误(mssql : Violation of PRIMARY KEY constraint 'PK_SMSBlast2' . 无法在对象 'dbo.SMSBlast2' 中插入重复键)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54701957/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com