Erano le 9:14 di un martedi quando ho eseguito un comando DELETE senza clausola WHERE su una tabella di produzione. In pochi secondi, 4.200 righe erano sparite.
Come si arriva a un errore del genere
Stavo lavorando su due finestre del terminale in parallelo: una connessa al database di test, una a quello di produzione. Ho eseguito il comando nella finestra sbagliata. Nessun alert, nessuna conferma richiesta dal sistema.
La query era corretta. Il contesto era sbagliato. Questa distinzione e fondamentale per chi inizia a lavorare con SQL.
Cosa ho fatto nelle ore successive
Ho contattato immediatamente il responsabile tecnico e ho verificato se esistesse un backup automatico. Fortunatamente, il sistema eseguiva snapshot ogni 6 ore. I dati sono stati ripristinati con una perdita di circa 40 minuti di transazioni.
Le modifiche operative adottate dopo
- Aggiunta di una variabile di ambiente visibile nel prompt del terminale che indica lambiente attivo
- Obbligo di eseguire prima un SELECT con la stessa WHERE prima di ogni DELETE
- Configurazione di backup incrementali ogni 30 minuti
Strumenti come pdf24 desktop download non hanno nulla a che fare con SQL, ma la logica di verifica prima di agire vale in qualsiasi contesto tecnico. Chi studia database programming deve interiorizzare questa abitudine prima ancora di imparare le query avanzate.