5 ms·
As long as mysql can't run ddl statements in a transaction it's worthless as far as I'm concerned. Also the thing where they (used to?) silently truncate your
by oauea 6y ago
As long as mysql can't run ddl statements in a transaction it's worthless as far as I'm concerned.
Also the thing where they (used to?) silently truncate your data when it wouldn't fit a column is absolutely insane. I'll take operational footguns over losing half my data every damn time.
- stepbeek 6y agoThe lack of ddl in a transaction is what scared me away too. Having to manually clean up after a failed migration just felt like something I shouldn't be thinking about.
- carlos_rpn 6y agoThey don't truncate data anymore, unless you enable it in the configuration (it's disabled by default). Invalid data (0000-00-00) is also not accepted anymore.
- lokedhs 6y agoI'm definitely no fan of mysql. I have, like many others, been scarred by its misfeatures. However, not having DDL in transactions isn't really a barrier for being useful. Oracle doesn't have transactional DDL either, and say what you will about the company, the product itself has proven itself.
- jhgb 6y agoBut Firebird does have it, too. I find it funny how supposedly top products sometimes lack the most basic features.
- Foobar8568 6y agoMySQL is as advanced as Oracle on this topic (DDL in transaction), unless Oracle has changed in the recent years.
- jeltz 6y agoWhich means equally useless. I agree with him about transactional DDL. Having worked both with it and without it I would never want to go back to MySQL.
- Foobar8568 6y agoI have never said that it was useful :o I work with SQL Server, and I have been always amazed that DDL aren't transactional in Oracle. And it's supposed to be a "serious" database. That and the empty string being equals to NULL, but I think they 180 on that point in the recent years.
- skunkworker 6y agoAs nice as having DDL in a transaction is, once you get to scale this isn't used as you'll be doing index creation concurrently which cannot be done inside a DDL transaction.
- setr 6y agoTill v8.0.16 mysql used to accept and then just ignore check constraints I've never been so offended by a technology as the day I discovered that; it's not a misfeature and its not a bug -- only pure malice could have driven such a decision
- zodiakzz 6y agoDon't forget the 3-byte encoding they invented and call it 'utf8'.
- spiralx 6y agoI remember reading the MySQL Gotchas page back in the 2000s and that leaping out as a particularly egregious issue. It fit in with their whole ethos of "databases don't need transactions and users don't need errors" around that time though, which put me off for life.