我是vuejs和express的新手,我一直想知道如何从Guest
表中获取GuestID
到外键GuestID
code> 在我的预订
表中。
app.post('/create',(req,res,next)=>{
var mysql = require('mysql')
var connection = mysql.createConnection(config)
var sql = "INSERT INTO `guest` SET ?"
connection.query(sql,req.body,(err,results,fields)=>{
connection.end()
if(err){
next(err)
}else{
res.json([true,results.insertId])
}
})
})
app.post('/book',(req,res,next)=>{
var mysql = require('mysql')
var connection = mysql.createConnection(config)
var sql = "INSERT INTO `reservation` SET `GuestID`=LAST_INSERT_ID(),`RoomID`=?,`AdultCount`=?,`KidCount`=?,`CheckInDate`=?,`CheckOutDate`=?"
var RoomID = req.body.RoomID;
var AdultCount = req.body.AdultCount;
var KidCount = req.body.KidCount;
var CheckInDate = req.body.CheckInDate;
var CheckOutDate = req.body.CheckOutDate;
connection.query(sql,[RoomID,AdultCount,KidCount,CheckInDate,CheckOutDate],(err,results,fields)=>{
connection.end()
if(err){
next(err)
}else{
res.json([true,results])
}
})
})
然后我收到此错误:
Error: ER_NO_REFERENCED_ROW_2: Cannot add or update a child row: a foreign key constraint fails (
booking
.reservation
, CONSTRAINTreservation_ibfk_1
FOREIGN KEY (GuestID
) REFERENCESguest
(GuestID
))
最佳答案
感谢@Akina,我尝试在一个连接上搜索查询。我看到一篇文章,您可以使用连接中的 multipleStatements
将多个语句放入 Express 中,并使我的代码如下所示:
app.post('/book',(req,res,next)=>{
var mysql = require('mysql')
var connection = mysql.createConnection(config)
var sql = "INSERT INTO `guest` SET `FirstName`=?,`LastName`=?,`Email`=?,`ContactNumber`=?;SET @GuestID:=LAST_INSERT_ID();INSERT INTO `reservation` SET `GuestID`=@GuestID,`RoomID`=?,`AdultCount`=?,`KidCount`=?,`CheckInDate`=?,`CheckOutDate`=?"
var FirstName = req.body.FirstName;
var LastName = req.body.LastName;
var Email = req.body.Email;
var ContactNumber = req.body.ContactNumber;
var RoomID = req.body.RoomID;
var AdultCount = req.body.AdultCount;
var KidCount = req.body.KidCount;
var CheckInDate = req.body.CheckInDate;
var CheckOutDate = req.body.CheckOutDate;
connection.query(sql,[FirstName,LastName,Email,ContactNumber,RoomID,AdultCount,KidCount,CheckInDate,CheckOutDate],(err,results,fields)=>{
connection.end()
if(err){
next(err)
}else{
res.json([true,results])
}
})
})
我的意思是它很长,但它有效,哈哈,但是如果你们有比这更有效的东西,请告诉我
关于javascript - 使用 LAST_INSERT_ID 时出现 ER_NO_REFERENCED_ROW_2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59980106/