gpt4 book ai didi

mysql - 用于更新多个表中的数据的存储过程

转载 作者:行者123 更新时间:2023-11-29 19:46:46 26 4
gpt4 key购买 nike

我是sql新手。我正在通过做一个小应用程序来练习外键关系。它有 3 张 table 。一张名为“stpersonal”的表,其列为stID、stname、stdateofbirth、stgender。 stID 列是标识列和主键列。由于学生包含教育领域的多个字段,我使用了名为 “seducation” 的第二个表,其中包含字段 stID、stcollege、stgradyearsteducation表中的stID与stpersonal表中的stID有外键关系。 第三个表“staddress” 为学生地址,其中包含列stID、stAddressstaddress表中的stID与stpersonal表中的stID有外键关系。 我获得了存储过程来获取所有学生详细信息并删除和插入。但我无法找出用于更新的存储过程。我尝试了以下方法来创建存储过程

 create procedure stupdate
(
@ID int,
@stname nvarchar(50),
@stdateofbirth nvarchar(50),
@stgender nvarchar(50),
@stcollege nvarchar(50),
@stgradyear datetime,
@stAddress nvarchar(50)
)
as begin
update stpersonal
set
stname = @stname,
stdateofbirth = @stdateofbirth,
stgender = @stgender,
stcollege = @stcollege,
stgradyear = @stgradyear,
stAddress = @stAddress
where stpersonal.stID = @ID
end

这是我尝试过的代码。我尝试使用联接,但没有成功。所以我希望我能克服这个。提前致谢

最佳答案

试试这个:

 UPDATE stpersonal
INNER JOIN steducation ON steducation.stID = stpersonal.stID
INNER JOIN staddress ON staddress.stID = stpersonal.stID
SET stpersonal.stname = @stname,
stpersonal.stdateofbirth = @stdateofbirth,
stpersonal.stgender = @stgender,
steducation.stcollege = @stcollege,
steducation.stgradyear = @stgradyear,
staddress.stAddress = @stAddress
WHERE stpersonal.stID = @ID

关于mysql - 用于更新多个表中的数据的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40917661/

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