Italian Stored Procedure

micro

Well-Known Member
Licensed User
Longtime User
Salve ragazzi
ho bisogno di capire alcune cose sulle stored procedure, un argomento che ho letto sommariamente ma mai approfondito perchè pensavo che la programmazione lato server DB non sarebbe mai stata necessaria, almeno per me, ma credo che in alcuni casi possa venire in aiuto.
Sempre che poi si possa fare.
Ho un programma che non si può modificare e che si appoggia ad un server mysql, la concorrenza è multiplia e alcuni problemi sono legati al fatto che non si è osservata un'accurata gestione degli accessi.
Fondamentalmente vorrei che ogni volta che s'invia un INSERT o un UPDATE su determinate tabelle, tramite le stored procedure si dovrà eseguire prima una LOCK TABLES <table_name> WRITE, dopo eseguire la query vera e propria che arriva dal programma e per ultimo UNLOCK TABLES.
Dovrebbe essere una cosa così ma sono veramente incerto perchè mai usate queste procedure e mi sono aiutato da web:


Esempio:
DELIMITER //

CREATE PROCEDURE ....NOME PROCEDURA??
BEGIN
    -- lock tables
    SET @sql := CONCAT('LOCK TABLES ', table_name, ' WRITE');
    PREPARE stmt FROM @sql;
    EXECUTE stmt;
  
    -- esegui insert o update
    QUI DOVREBBE PRENDERSI LA QUERY ARRIVATA..... cosa metto?? (@sql)
  
    -- unlock tables
    UNLOCK TABLES;
END//

DELIMITER ;

dove dice 'table_name' ci dovrebbe essere il nome della tabella su cui è diretta la query ma io non posso
saperlo, so solo che vorrei che intervenisse questa procedura solo se dirette a tre di tutte le tabelle presenti
nel DB.
Non so se sono stato chiaro ma meglio di così mi riesce difficile spiegarlo.

Grazie a tutti per i consigli
 

micro

Well-Known Member
Licensed User
Longtime User
Se non puoi modificarlo, come potresti fargli lanciare la stored procedure?
Ciao LucaMs
e grazie come al solito per il pronto intervento che hai con tutti
Le stored procedure sono delle routine che puoi inserire lato server DB e li con phpmyadmin riesco ad accedere ecco perchè volevo sfruttare l'unica alternativa, se si poteva modificare il programma bastava inglobarle nella query ed era fatto.
Poi è probabile pure che non si possa fare ma mi sono permesso di dirlo perchè una volta ho visto uno che interveniva (era su Msql) sulle stored e faceva praticamente di tutto.
Nella sezione phpmyadmin c'è la funzione routine e qui puoi inserire funzioni e procedure ma non avendolo mai fatto non voglio creare problemi ecco perchè chiedevo.
Grazie e Buona giornata a tutti.

1678167371414.png


O meglio usare i Trigger visto che comunque posso scegliere tabelle e la modalità Before e After ......non saprei
1678168068860.png
 
Last edited:
Top