这是我的过程,我需要做两个插入,第二个插入中的一个值是结果,前一个插入可能吗?
CREATE PROCEDURE crearEquipo(id_user INT, nombre VARCHAR(45))
COMMENT 'Procedimiento que guarda un equipo con un determinado nombre si no existe ese nombre para ese usuario'
BEGIN
IF NOT EXISTS (
SELECT ut.idTeam FROM usersTeam ut
INNER JOIN teams t ON t.team_id = ut.team_id
WHERE t.name = nombre AND ut.idUser = id_user
)
THEN
SET @id_team := (INSERT INTO teams(name) VALUES ( nombre));
INSERT INTO usersTeam (idUser,idTeam) VALUES (id_user,@id_team);
SELECT 'Equipo guardado correctamente!!!!';
ELSE
SELECT 'Este equipo para ese cliente ya existe en la base de datos, cambie el nombreteams!';
END IF;
要获取最后一个 id,您必须使用函数 LAST_INSERT_ID()。Para obtener el ultimo id debes usar la funcion LAST_INSERT_ID():
CREATE PROCEDURE crearEquipo(id_user INT, nombre VARCHAR(45))
COMMENT 'Procedimiento que guarda un equipo con un determinado nombre si no existe ese nombre para ese usuario'
BEGIN
IF NOT EXISTS (
SELECT ut.idTeam FROM usersTeam ut
INNER JOIN teams t ON t.team_id = ut.team_id
WHERE t.name = nombre AND ut.idUser = id_user
)
THEN
(INSERT INTO teams(name) VALUES ( nombre));
SET @id_team :=LAST_INSERT_ID();
INSERT INTO usersTeam (idUser,idTeam) VALUES (id_user,@id_team);
SELECT 'Equipo guardado correctamente!!!!';
ELSE
SELECT 'Este equipo para ese cliente ya existe en la base de datos, cambie el nombreteams!';
END IF;