この手順を使用して、任意のランダムな値を選択したい
delimiter $$
CREATE PROCEDURE randomdigit(troy INT)
BEGIN
select troy;
END$$
delimiter ;
それを使用するために、私は電話していますcall randomdigit(n);
ただし、プロシージャをトリガーの変数に割り当てようとすると、このエラーが発生します
/* SQL エラー (1064): SQL 構文にエラーがあります。near 'call randomdigit(1); を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。SET the_class_id = (11行目のe'からexamination_class_idを選択 */
これが私のきっかけです
DELIMITER //
CREATE TRIGGER lestrigger
AFTER INSERT ON examinations
FOR EACH ROW
BEGIN
DECLARE the_last_inserted_id INT ;
DECLARE the_class_id INT;
DECLARE the_year_id INT;
DECLARE lesrandom INT;
SET the_last_inserted_id = LAST_INSERT_ID();
SET lesrandom = call randomdigit(1);
SET the_class_id = (select examination_class_id from examinations where examination_id = 1);
SET the_year_id = (select examination_class_id from examinations where examination_id = 1);
insert into examination_data (ed_cs_id,ed_examination_id) VALUES (( select cs_id from class_students where cs_class_id = 1 AND cs_year_id = 1 ),lesrandom);
END //
DELIMITER ;
このようにプロシージャを変数に代入するのは正しいですか?