sql >> Database >  >> RDS >> Mysql

Gegevens uit opgeslagen procedures SELECTEREN

Selecteren uit functies is mogelijk in andere engines. Met Oracle kunt u bijvoorbeeld een functie schrijven die een tabel van het door de gebruiker gedefinieerde type retourneert. U kunt resultatensets definiëren in de functie, ze vullen met behulp van query's of zelfs met een combinatie van selecties en code. Uiteindelijk kan de resultatenset worden geretourneerd door de functie, en u kunt daarop verder zoeken met:

select * from table(FunctionToBeCalls(parameters));

Het enige nadeel is dat deze resultatenset niet wordt geïndexeerd, dus het kan traag zijn als de functie binnen een complexe query wordt gebruikt.

In MySQL is zoiets niet mogelijk. Er is geen manier om een ​​resultatenset van een procedure rechtstreeks in een selectiequery te gebruiken. U kunt enkele waarden van een functie retourneren en u kunt OUT . gebruiken of INOUT parameters naar uw procedure om waarden te retourneren. Maar volledige resultaatsets is niet mogelijk. Het vullen van een tijdelijke tabel binnen uw procedure komt het dichtst in de buurt.




  1. Haal het voorlaatste record voor elke gebruiker op uit de database

  2. Waarom deze verklaring rs=st.executeQuery(query); is niet excuus? Hoe kan ik alleen een tabel selecteren die afhankelijk is van invoertype =radio van mysql uit twee tabellen?

  3. Ansible houdt van PostgreSQL

  4. Hoe een veld in MySql te verhogen met ON DUPLICATE KEY UPDATE bij het invoegen van meerdere rijen?