Well, today I’ve learned something new. Typing a query like this:
UPDATE `table` SET `field` = '1' WHERE `id` = '123'
I made a typo and entered the following:
UPDATE `table` SET `field` = '1' WHERE `id` - '123'
Yup. A simple dash (-) instead of an equal (=) sign. I know, I’m supposed to do a SELECT before, or use a transaction, or, at least, have a backup of the database – depending on which school of thought you follow the most. I didn’t have any of these. And once the query went in, there was little I could do.
Guess what the query does? I’m still looking into the exact consequences, but so far it looks like ALL records EXCEPT the one with id 123 have been updated.
Gladly I have some history revision tables from which I could restore most of the state. But this is scary dangerous anyway. I would expect a syntax error intuitively.
I would expect everything except last 123 rows, but no :(
Ouch
Small typo… There is no such thing as small typo in MySQL! Some time ago I did truncate table, and dropped the full database by foreign keys… Expected ON DELETE RESTRICT would help… fail =) Fortunately it was test database =)
Manos Karaiskakis liked this on Facebook.
Lior Goldemberg liked this on Facebook.