1

mysql プロシージャ内で一時テーブルを作成し、そこから結果を選択しようとしています。

ここにSQLの一部があります

DELIMITER $$

CREATE PROCEDURE `mydb`.`simulate_results` (currdate DATETIME, enddate DATETIME, idcam INT)
BEGIN

DECLARE MYVAR1,
        MYVAR2,
        MYVAR3,
        IDX INT;

CREATE TEMPORARY TABLE IF NOT EXISTS tmp (
    `Id` INT NOT NULL AUTO_INCREMENT,
    `Field1` INT NOT NULL,
    `Field2` INT NOT NULL,
    `Field3` INT NOT NULL, PRIMARY KEY (`Id`)) ENGINE=MEMORY; 

INSERT INTO tmp (`Field1`,`Field2`,`Field3`) VALUES (0,0,0);
INSERT INTO tmp (`Field1`,`Field2`,`Field3`) VALUES (1,0,0);



SELECT Field1,Field2,Field3,Id INTO MYVAR1,MYVAR2,MYVAR3,IDXFROM tmp ORDER BY RAND() LIMIT 1;


        SELECT MYVAR1; (...)

SELECT INTO ステートメントから入力される唯一の変数は、IDX (主キー) です。その他は常に NULL です。

このコードに何か問題がありますか?

4

1 に答える 1