gpt4 book ai didi

MYSQL 存储过程插入问题

转载 作者:行者123 更新时间:2023-11-29 12:04:15 25 4
gpt4 key购买 nike

我有一个存储过程,我想要插入一个学生,插入一个监护人,然后从每个学生中获取 ID 并将一条记录插入到关联表中。

下面是我正在使用的代码,但出现以下错误:

1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 40 行的 'SET @studentId = LAST_INSERT_ID() INSERT INTO TblPersons (firstName, lastName') 附近使用的正确语法

创建程序usp_InsertStudentAndGuardian(
IN p_firstName VARCHAR(45),
IN p_lastName VARCHAR(45),
IN p_gender VARCHAR(1),
IN p_birthDate 日期,
在 p_joinDate 日期中,
在 p_isActive 位中,
在 p_isUnderAge 位中,
IN p_gFirstName VARCHAR(45),
IN p_gLastName VARCHAR(45),
IN p_gGender VARCHAR(1),
在 p_gBirthDate 日期中,
在 p_gJoinDate 日期中,
在 p_gIsActive BIT 中,
在 p_gIsUnderAge 位中,
IN p_personType INT
)
开始

插入 TblPersons
(
名字,
姓氏,
性别,
出生日期,
加入日期,
处于事件状态,
未成年
)
值(value)观
(
p_fistName,
p_lastName,
p_性别,
p_birthDate,
p_joinDate,
p_isActive,
p_isUnderAge
)
SET @studentId = LAST_INSERT_ID() <-------- 第 40 行

插入 TblPersons
(
名字,
姓氏,
性别,
出生日期,
加入日期,
处于事件状态,
未成年
)
值(value)观
(
p_g名字,
p_gLastName,
p_g性别,
p_gBirthDate,
p_gJoinDate,
p_gIsActive,
p_gIsUnderAge
)
SET @guardianId = LAST_INSERT_ID()

插入 AtbStudentsGuardians
(@studentId、@guardianId)

插入 AtbPersonsPersonTypes
(@studentId, p_personType);

结束//

最佳答案

终止每个 SQL 语句; 否则它将被视为单个语句,如下所示

INSERT INTO TblPersons
(
firstName,
lastName,
.......
)
VALUES
(
p_fistName,
p_lastName,
......
);
SET @studentId := LAST_INSERT_ID();

再说一次,我认为你的代码行如下

SET @studentId = LAST_INSERT_ID(); <------ LINE 40

应该是

SET @studentId := LAST_INSERT_ID();

关于MYSQL 存储过程插入问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31820195/

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