Corsi on-line

MySQL: una semplice Stored Procedure per cancellare record

Si immagini di dover gestire una semplice tabella di un database MySQL denominata “books” all’interno della quale siano presenti soltanto 3 campi: “id_book”, un identificatore univoco autoincrementale numerico intero che funga anche da chiave primaria, “title”, un campo VARCHAR destinato ad ospitare il titolo dell’opera, e “author”, un riferimento associato allo stesso tipo di dato del precedente che però dovrà essere utilizzato per memorizzare il nome dell’autore del libro.

MySQLA questo punto potremmo creare una Stored Procedure, cioè un applicativo interno scritto (in genere) in linguaggio SQL che viene mantenuto nello stesso database, grazie alla quale selezionare e rendere visibili tutti i record presenti in tabella:

mysql> DELIMITER $$
mysql> CREATE PROCEDURE GetAllBooks()
    -> BEGIN
    ->      SELECT * FROM books;
    -> END
    -> $$
Query OK, 0 rows affected (0.00 sec)

mysql> DELIMITER ;

Per richiamare tale procedura sarà sufficiente operare tramite la funzione CALL a cui passare il nome della procedura stessa:

mysql> CALL GetAllBooks();

Ancora più interessante potrebbe essere l’esempio relativo alla creazione di una Stored Procedure utilizzabile per la cancellazione dei record sulla base dell’identificativo univoco associato a ciascuno di essi:

mysql> DELIMITER $$
mysql> CREATE PROCEDURE DelBooks(IN bookID INT)
    -> BEGIN
    ->      DELETE FROM books WHERE id_book = bookID;
    ->      SELECT * FROM books;
    -> END
    -> $$
Query OK, 0 rows affected (0.00 sec)

mysql> DELIMITER ;

Una volta richiamata, alla Stored Procedure bisognerà passare come argomento l’ID (bookID) del record che si desidera cancellare, la query SELECT successiva alla DELETE permetterà di visualizzare la tabella aggiornata in seguito alla rimozione appena effettuata.

Post correlati
I più letti del mese
Tematiche