Postgresql 违反外键约束
我一直收到这个错误: 表“note”上的插入或更新违反外键约束“note\u username\u fkey” 我有两个表:User和Note。以下是create table语句:Postgresql 违反外键约束,postgresql,go,Postgresql,Go,我一直收到这个错误: 表“note”上的插入或更新违反外键约束“note\u username\u fkey” 我有两个表:User和Note。以下是create table语句: func setup() *sql.DB { db = connectDatabase() //Create queries userTable := `CREATE TABLE IF NOT EXISTS "User"( UserID SERIAL unique, UserNam
func setup() *sql.DB {
db = connectDatabase()
//Create queries
userTable := `CREATE TABLE IF NOT EXISTS "User"(
UserID SERIAL unique,
UserName VARCHAR(50) PRIMARY KEY,
FirstName VARCHAR(50),
LastName VARCHAR(50),
Password VARCHAR(40)
);`
noteTable := `CREATE TABLE IF NOT EXISTS Note(
NoteID SERIAL PRIMARY KEY,
UserID INT,
UserName VARCHAR(50),
Title VARCHAR(30),
Contents VARCHAR(1000),
DateCreated DATE,
DateUpdated DATE,
FOREIGN KEY (UserName) REFERENCES "User"(UserName)
);`
}
}
谁能告诉我哪里错了
谢谢。检查您尝试在备注表中插入的“用户名”列值是否已在“用户”表中可用。因为insert查询正在尝试插入在“User”表中不可用的值。您需要先为外键约束创建User,或者在note表列的username中发送null。您阅读了哪些内容了吗?
func createNoteInsertSQL(userID string, userName string, title string, content string, selectSetting string) bool {
var newNote Note
var err error
newNote.UserID, err = strconv.Atoi(userID)
if err != nil {
log.Fatal(err)
}
newNote.UserName = userName
newNote.Title = title
newNote.Contents = content
date := time.Now()
newNote.DateCreated = date
newNote.DateUpdated = date
query := `INSERT INTO Note (UserID, UserName, Title, Contents, DateCreated, DateUpdated) VALUES ($1, $2, $3, $4, $5, $6) RETURNING NoteID;`
stmt, err := db.Prepare(query)
if err != nil {
log.Fatal(err)
return false
}
var noteID int
err = stmt.QueryRow(newNote.UserID, newNote.UserName, newNote.Title, newNote.Contents, newNote.DateCreated, newNote.DateUpdated).Scan(¬eID)
if err != nil {
log.Fatal(err)
return false
}