In questo post SQL Server – 2016 – Clausola T-SQL Enhancement “Drop if Exists”, abbiamo visto la nuova funzionalità introdotta in SQL Server versione 2016. Uno dei miei amici di recente mi ha fatto una domanda su come eliminare la tabella se esiste nel database MySQL? Non è stato sorprendente vedere che non molte persone conoscono l'esistenza di questa funzione. MySQL ha già questa funzionalità da un po' e se sei un DBA MySQL, potresti trovare interessante che SQL Server abbia appena introdotto questa funzionalità.
Vediamo ora questo esempio in azione. Per prima cosa creeremo una tabella di esempio.
CREATE TABLE test(id INT,name VARCHAR(100));
Se dobbiamo scendere sopra la tabella, possiamo eseguire il seguente script e rilasciarlo.
DROP TABLE IF EXISTS test;
Lo script sopra elimina la tabella denominata test se esiste, altrimenti visualizzerà un avviso e non un errore. Questo è molto importante per capire che poiché non mostra errori, possiamo facilmente aggirare l'avviso nel nostro codice. Questo è utile se non sei sicuro dell'esistenza della tabella in anticipo.
Non solo le tabelle, ma MySQL ha anche funzionalità simili disponibili per le procedure memorizzate. Vediamo un rapido esempio per lo stesso.
Ecco uno script che puoi utilizzare per creare stored procedure.
CREATE PROCEDURE test_proc AS BEGIN SELECT 1 AS number; END;
Dopo aver creato la procedura sopra, puoi usare il seguente script per rilasciarlo.
DROP PROCEDURE IF EXISTS test_proc;
Ricorda, proprio come table, eliminerà la stored procedure se ce n'è una, altrimenti restituirà semplicemente un avviso. È davvero interessante vedere MySQL avere questa funzionalità già da un po', mentre SQL Server ha introdotto questa funzionalità solo quest'anno.