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

    [MySQL] Help Stored Procedure

    Ciao Raga, urge aiutino !

    So che si può fare, so che sarebbe la cosa migliore da fare, ma in tutta sincerità non riesco a capire come partire.

    Devo eseguire una serie di controlli, insert ed update di più tabelle in un unico script
    al momento faccio tutto in php e funziona, ma sarebbe sicuramente meglio creare una stored procedure ad hoc, spiego in dettaglio il flusso;

    [list=1][*]tramite form passo dei variabili[*]controllo tramite if che variabile "codice_cliente" non sia già presente,
    se è un nuovo cliente popolo la tabella clienti,
    altrimenti non devo popolarla[*]se è nuovo e quindi ho popolato la tabella clienti prelevo
    l'ultimo id inserito (id del cliente) tramite "mysql_insert_id()" [*]eseguo l'update di un'altra tabella con l'id_cliente rilevato[/list=1]


    Qualcuno mi aiuta a capire come strutturare una SP che faccia tutto questo lavoro ?

    grazie mille


    .

  2. #2
    Utente bannato
    Registrato dal
    Dec 2012
    Messaggi
    679

    Re: [MySQL] Help Stored Procedure

    Originariamente inviato da newbobotime
    ma sarebbe sicuramente meglio creare una stored procedure ad hoc.

  3. #3
    perdona gentilissimo franz....
    puoi dettagliare un minimo il motivo di questa tua risposta ?!

    Grazie in particolare per la tua preziosa collaborazione


    .

  4. #4
    Utente bannato
    Registrato dal
    Dec 2012
    Messaggi
    679
    Originariamente inviato da newbobotime
    perdona gentilissimo franz....
    puoi dettagliare un minimo il motivo di questa tua risposta ?!

    Grazie in particolare per la tua preziosa collaborazione


    .
    è troppo lungo da spiegare

  5. #5
    Non sempre si fa una bella figura così... io per esempio ho un'ottima opinione di chi sperimenta ciò che non conosce, e una pessima opinione di chi tratta gli altri con superiorità

    ---

    Torniamo IT.

    Per inserire la riga solo nel caso in cui non esista, usa uno o più indici UNIQUE, in modo da evitare i duplicati. Nella insert, usa l'opzione IGNORE. In questo modo, se la riga esiste già, non verrà generato alcun errore.

    Per eseguire l'update di un'altra tabella, se devi solo inserire l'id, puoi usare un trigger. I trigger sono eventi che si attivano, per esempio (nel tuo caso), dopo una insert (after insert).
    Nel corpo del trigger userai un'istruzione di questo tipo:
    insert into tab set id= NEW.id;

    (NEW.id significa "il valore dell'id che hai appena scritto in questa tabella")

  6. #6
    cosa replicare alla tua affermazione in the web....
    HAI TUTTA LA MIA STIMA !!!

    Mi stò affacciando solo adesso nel mondo delle SP, sono alle prese con un'applicazione sviluppata in php-mysql, vorrei ottimizzare la gestione dei dati sfruttando la potenza di MySQL implementando delle stored procedure.

    Puoi consigliarmi qualche tutorial e/o libro ?

    10x


    .

  7. #7
    Guarda, qui c'è un buon tutorial, ma se non ricordo male non ci sono tutti gli argomenti:
    http://www.mysqltutorial.org/mysql-s...-tutorial.aspx

    Io sono un estimatore della programmazione SQL, perché può risparmiare molte comunicazioni client/server, che spesso sono il collo di bottiglia. Un esempio: diciamo che vuoi calcolare la media geometrica di una serie di dati. Non c'è una funzione SQL per farlo, quindi l'approccio più comune è leggere questi dati con un programma esterno e scorrerli tutti. Se sono un milione di righe, verranno inviate tutte attraverso la rete! Con una Stored Function però potresti leggerle tutte lato server e restituire la media geometrica: così attraverso la rete viaggerà un solo numero. Le prestazioni cambiano molto, e a volte risolvi anche un problema di sicurezza.

    Però detto questo in MySQL le stored procedure hanno molti limiti, e soprattutto sono lente e difficili da debuggare. Quindi... sì, io consiglio di usarle, ma attenzione!

  8. #8
    Semplicemente, grazie !




    .

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.