sql >> Databasteknik >  >> RDS >> Mysql

Anropa en lagrad procedur i en lagrad procedur i MySQL

CREATE PROCEDURE innerproc(OUT param1 INT)
BEGIN
 insert into sometable;
 SELECT LAST_INSERT_ID() into param1 ;
END
-----------------------------------
CREATE PROCEDURE outerproc()
BEGIN
CALL innerproc(@a);
// @a gives you the result of innerproc
SELECT @a INTO variableinouterproc FROM dual;
END

OUT parametrar bör hjälpa dig att få tillbaka värdena till anropsproceduren. Baserat på det måste lösningen vara ungefär så här.



  1. Det går inte att skapa Multi-AZ Aurora RDS-instans

  2. Kör alla SQL-filer i en katalog

  3. Dödläge i PostgreSQL när UPDATE körs

  4. Hur IIF() fungerar i SQL Server