Mysql:用两个表插入过程(FK)

时间:2011-11-04 11:58:49

标签: mysql stored-procedures

我试图制作一个插入表格的存储过程。 插入会影响两个表,它们之间有一个FK。

enter image description here

CREATE PROCEDURE `db`.`add_user_hr` (
    IN in_Pass VARCHAR(45),
    IN in_Value VARCHAR(45),
    IN in_HR_ID INT,
    )
BEGIN
    INSERT INTO HR
        (
            Value
        )
        VALUES
        (
            in_Value
        );

    INSERT INTO User
        (
            Password,
            HR_idHR
        )
        VALUES
        (
            in_Pass,
            (Get the ID from HR)
        );
END

如何确保正确的ID进入用户。和 如果插入人力资源部门时出错,我该做什么 确定它是否需要插入用户?我有 看着“提交”,但不知道它是如何使用的。 或者有更好的方法吗?

在这个例子中,我有表UserType。这需要吗? 为了找出后来的巫婆类型的用户?和 我如何在插入中使用它,选择中的过程 未来?

所有帮助的Thx!

1 个答案:

答案 0 :(得分:0)

如果PK(主键)具有AUTO_INCREMENT选项,则可以执行以下操作:

declare value_id_v INT;
insert into hr(value) values(value_in);

set value_id_v = last_insert_id();

现在您可以使用value_id_v进行插入操作。以下是阅读此功能的链接LAST_INSERT_ID