- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我的代码有问题,我正在使用库 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/
我现在正在尝试 restful api,其中列 SequenceID 不是自动增量,因为故意的,当我像这样计数时,我的问题是库 gorm countSequenceId := db.Debug().T
我是一名优秀的程序员,十分优秀!