MySql存储过程的帮助!很近

时间:2013-03-07 20:08:44

标签: mysql

好的,我在本书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。

非常感谢!!!

1 个答案:

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