I have problem with my code , where I'm using library GORM to create or insert data to my restful api, print error say like this : (mssql: Violation of PRIMARY KEY constraint 'PK_SMSBlast2'. Cannot insert duplicate key in object 'dbo.SMSBlast2'. The duplicate key value is (0).)
package main
import (
"encoding/json"
"fmt"
"github.com/gorilla/mux"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/mssql"
"log"
"net/http"
"time"
)
type SMSBlast struct {
SequenceID int gorm:"column:SequenceID"
MobilePhone string gorm:"column:MobilePhone"
Output string gorm:"column:Output"
WillBeSentDate *time.Time gorm:"column:WillBeSentDate"
SentDate *time.Time gorm:"column:SentDate"
Status *string gorm:"column:Status"
DtmUpd time.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()
}