Don't call it "accidental database deletion". Call it "unannounced live exercise of backup procedure".
Programmer Humor
Post funny things about programming here! (Or just rant about your favourite programming language.)
Rules:
- Posts must be relevant to programming, programmers, or computer science.
- No NSFW content.
- Jokes must be in good taste. No hate speech, bigotry, etc.
Either that or rapid exodus from the country
DB admins rawdogging the prod postgres on a Friday evening.
I did something like that once, I wasn't very good at SQL but I needed some data, so I logged in into the production database and run my SELECT queries, I didn't change anything so everything was good, or so I thought.
I created a cross product over tables with millions of entries and when it didn't respond I thought it was odd but it was time to go home anyway. On the way home they called me and asked what I did. They had to restart the DB server because once the cache timed out one application after another started failing.
Ouch. Gotta wrap those deletes in a transaction and look before it rolls forward. Lessons learned. Time to see if the backups actually have any data on them.
"I didn't put a WHERE clause in that DELETE statement"
As a side note, DBeaver actually asks for confirmation if it thinks you are about to do something wonky. I think it's quite telling just how common this mistake is. We've all been there
Update and delete should require a where clause. You can always use true or 1 = 1, the gain from omitting it is minimal.
The fact that no DBMS ever decided to implement this, not even as an option is quite distressing.
Embrace it as you are now officially a developer
At some point this is just a rite of passage
Mine was to format the wrong computer on the first day of my first IT internship. I spent the next six weeks there fixing that oopsie.
Sometimes I dream of getting fired for accidentally doing shit like this. Sweet relief...
Good companies wouldn't fire someone for this because:
-
There should be processes in place to prevent this, or recover from this, anyway. It's a team/department failure and you would just be the straw that broke the camel's back.
-
They now know you've experienced this and will hopefully know to never do it again. Bringing in someone else could just reintroduce the issue.
You just triggered my PTSD
I did quite a few bad things like that early on. Now I never type UPDATE or DELETE without first doing a SELECT and WHERE. It's easy to convert to a DELETE and UPDATEs tend to effect only a few fields at a time so the extra effort is worth the peace of mind. It's a good habit to form, I can't even think of the last time I did anything horrible.