1

わかりました、私の本のこの 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 です。

どうもありがとうございました!!!

4

1 に答える 1

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_」を使用しました。これは特定の基準ではありませんが (私はそうは思いません)、値がどこから来ているのかを読み取るときに意味があるので気に入っています。

于 2013-03-07T20:21:24.020 に答える