好的,我在本书MySQL部分的最后一个问题。它是关于存储过程(D :)。理解一些逻辑有点麻烦。我有它的基础知识,并编写了许多存储过程。但这个令人困惑。
任何和所有的帮助都会很棒。
问题:
- 4.创建一个名为spUpdateStudent的存储过程,该存储过程接受学生姓名和 - 作为参数的亲属信息的下一个。该程序必须插入近亲 - 通过从学生表中查找学生ID,将信息输入到亲属表中。
我的代码:
DELIMITER //
CREATE PROCEDURE `UniversityDB`.`spUpdateStudent`(In student_first_name VARCHAR(25), next_of_kin varchar(50))
BEGIN
SELECT *
FROM next_of_kin;
WHERE student_id = 01234; -- Example
INSERT next_of_kin;
END //
DELIMITER;
CALL spUpdateStudent();
我的数据库名称是UniversityDB。
非常感谢!!!
答案 0 :(得分:0)
你快到了!
CREATE PROCEDURE `UniversityDB`.`spUpdateStudent`(In p_student_first_name VARCHAR(25), p_next_of_kin varchar(50))
BEGIN
-- Declare a variable to hold the ID of the student
DECLARE v_student_id INT;
-- Get the student ID
SELECT student.id INTO v_student_id FROM student;
WHERE student_firstname = p_student_first_name
-- Now we have the student id lets update the next of kin table
UPDATE next_of_kin
SET next_of_kin.name = p_next_of_kin
WHERE next_of_kin = v_student_id
END //
我在参数名称的开头使用了“p_”,在变量名的开头使用了“v_”。这不是(我不认为)任何特定的标准,但是我喜欢它,因为它在读取值的来源时是有意义的。