MySQL将变量中INSERT INTO的结果保存到程序中?

时间:2017-01-18 13:52:02

标签: mysql procedure

这是我的程序,我需要做两个INSERT,第二个INSERT中的一个值是结果,之前的INSERT是可能的吗?

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;

1 个答案:

答案 0 :(得分:0)

要获取最后一个ID,您必须使用函数LAST_INSERT_ID()。 Para obtener el ultimo id debes usar la funcion LAST_INSERT_ID():

    InputStream in = new ByteArrayInputStream(fileData);
    BufferedImage buf = ImageIO.read(in);

    int maxWidth = 775;
    int maxHeight = 375;
    int newWidth;
    int newHeight;
    float height = buf.getHeight();
    float width = buf.getWidth();
    float ratio = (float) 0.0;

    if(height > maxHeight || width > maxWidth)
    {

     if (height > width)
     {
        ratio = (height/width);
     }
     else if(width > height)
         ratio = (width/height);
     while(height > maxHeight || width > maxWidth)
     {
        if (height > width)
         {              
            height -= ratio;
            width -= 1;
         }

         else if(width > height)
         {
                width -= ratio; 
                height -= 1;                                    
         }

    }
    }
    newWidth = (int) width;
    newHeight = (int) height;

    // Call method to scale image to appropriate size
    byte[] newByte = scale(fileData, newWidth, newHeight);