存储过程:如何插入关系数据?

时间:2013-01-28 13:46:20

标签: php mysql sql

如何将插入的值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;

1 个答案:

答案 0 :(得分: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 ;