1

挿入された値IDをストアドプロシージャの同じ関数で別のテーブルに挿入するにはどうすればよいですか?

例えば:

CREATE PROCEDURE p1(IN id_val INT, IN name_val VARCHAR(255))
    BEGIN
    DECLARE @iJobID [INT]
    SET @iJobID=(INSERT INTO test(id, name) VALUES(id_val, name_val));
    INSERT INTO vasu(id) VALUES(@iJobID); 
END;
4

1 に答える 1

2

LAST_INSERT_ID()最後に挿入されたIDを取得し、それをローカル変数に設定するために使用できます。

DELIMITER $$

CREATE PROCEDURE p1 
(
    IN id_val INT, 
    IN name_val VARCHAR(255)
)
BEGIN

    INSERT INTO test(id, name) VALUES(id_val, name_val);
    SET @iJobID :=  LAST_INSERT_ID();
    INSERT INTO vasu(id) VALUES(@iJobID); 

END $$

DELIMITER ;
于 2013-01-28T14:04:51.333 に答える