Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [MySQL] Richiamare procedura da procedura

    Ciao a tutti, sono alle primissime armi con MySQL... finora mi sono trovato a dover usare solo select, delete e insert, ma ora ho bisogno di fare qualcosa di più complesso... il mio professore di informatica mi ha scritto un codice in SQL ma devo tradurlo in MySQL e ho delle difficoltà, potreste aiutarmi?

    Codice della procedura AMICI_DI
    codice:
    DROP PROCEDURE `AMICI_DI`//
    CREATE DEFINER=`root`@`localhost` PROCEDURE `AMICI_DI`(IN x INT, OUT y INT)
    (SELECT id2 FROM friends WHERE id1 = x)
    UNION
    (SELECT id1 FROM friends WHERE id2 = x)
    Codice della procedura AMICI_COMUNI che richiama AMICI_DI
    codice:
    DROP PROCEDURE IF EXISTS `AMICI_COMUNI` ;
    CREATE DEFINER=`root`@`localhost` PROCEDURE `AMICI_COMUNI`(IN x INT, IN y INT)
    
       DELETE FROM amici_X ;
       DELETE FROM amici_Y ;
       DELETE FROM amici_XY ;
       DELETE FROM amici_consigliati ;
    
       INSERT INTO amici_X (id_amico) VALUES SELECT * FROM AMICI_DI(x)  ;
       INSERT INTO amici_Y (id_amico) VALUES SELECT * FROM AMICI_DI(y) ;
       INSERT INTO amici_XY (id_amico) VALUES SELECT * FROM amici_X WHERE id_amico IN (SELECT id_amico FROM amici_Y) ;

    QUESTO L'ERRORE
    codice:
    Errore
    query SQL: 
    
    INSERT INTO amici_X( id_amico ) 
    VALUES SELECT * 
    FROM AMICI_DI[COLOR = blue](
    
    x
    )[ / COLOR];
    
    Messaggio di MySQL: 
    
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT * FROM AMICI_DI(x)' at line 1
    Mi sembra ovvio che sbaglio a richiamare la procedura AMICI_DI e a passarle i parametri, ma non so come fare... Ringrazio in anticipo chi mi aiuterà.

  2. #2
    Controllando meglio ho visto che con la procedura "AMICO_DI", a y non viene assegnato nulla. Come posso fare per assegnarle un valore? Sto cercando tutte le guide possibili ma senza un po' di basi vedo difficile risolvere il quesito (e ne ho un'urgenza abbastanza immediata, quindi se potreste aiutarmi anzichè linkarmi guide per favore...)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.