Asignar select a variable en mysql

Cuando se trabaja con procedimientos almacenados, a veces es sumamente necesario, trabajar con variables, y asignar a este, el resultado de una consulta. Esta seria un de las formas de poder hacerlo.

sintaxis:

SELECT @nombre := nombre_columna from tabla1 where condiciĆ³n;

pdt: ejemplo extraido de un SP, solo para fines educativos

set @SectorID=null;
set @ZonaID=null;
set @LibroID=null;
set @HojaID=null;
# Insertando zona nueva
insert into Zona(
	NroZona,
	NombreZona,
	DescripcionZona
)values(
	varNroZona,
	varNroZona,
	varNroZona
	);
select @ZonaID:= max(idZona) from Zona;
# Insertando Sector
insert into Sector(
	NroSector,
	NombreSector,
	DescripcionSector
)values(
	varNroSector,
	varNroSector,
	varNroSector
);
select @SectorID:= max(idSector) from Sector;
# Insertar Libro
insert into Libro(
	NroLibro,
	NombreLibro,
	DescripcionLibro
)values(
	varNroLibro,
	varNroLibro,
	varNroLibro
);
select @LibroID:= max(idLibro) from Libro;
# Insertar Hoja
insert into Hoja(
	NroHoja,
	NombreHoja,
	DescripcionHoja
)values(
	varHoja,
	varHoja,
	varHoja
);
select @HojaID:= max(idHoja) from Hoja;
# Insertando el contrato
insert into ContratosMedidores(
	NroContrato,
	Sector,
        Zona,
        Libro,
        Hoja,
        Nim,
        TipoID,
        NombresDuenio,
        DireccionMedidor,
        Sed,
        Longitud,
        Latitud
)values(
      	varNroContrato,
	@SectorID,
	@ZonaID,
	@LibroID,
	@HojaID,
	varNim,
	varTipoID,
	varNombresDuenio,
	varDireccionMedidor,
	varSed,
	varLongitud,
	varLatitud
);
Comentarios