这是我的程序,我需要做两个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;
答案 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);