MySql存储过程帮助!如此接近



好了,这是我书中关于MySQL部分的最后一个问题。它是关于存储过程(D:)的。理解一些逻辑有点困难。我已经掌握了它的基本知识,并编写了许多存储过程。但是这个很令人困惑。

任何帮助都是了不起的。

问题:

——4。创建一个名为spUpdateStudent的存储过程,该过程接受学生名和——近亲信息作为参数。该程序必须插入近亲——通过从student表中查找student 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.

非常感谢!

你就快成功了!

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_"。这不是(我不认为)任何特定的标准,但我喜欢它,因为它在读取值的来源时是有意义的。

最新更新