Just a little gem I wanted to share. Found out while testing. [This was brought to my attention by a fellow developer, and I confirmed all this on my test server running running a stock standard MySQL 5.5].
mysql> create table a (b int not null, c int not null);
Query OK, 0 rows affected (0.17 sec)mysql> insert into a (b) values (1);
Query OK, 1 row affected, 1 warning (0.03 sec)As if the above was not miraculous enough, then you get:
mysql> select * from a;
+---+---+
| b | c |
+---+---+
| 1 | 0 |
+---+---+
1 row in set (0.00 sec)
Unbelievable!
When you switch from MySQL to Postgres or Firebird, suddenly 200 of your 900 unit tests stop working and you wonder why...

And then they have the audacity to call MySQL (and probably MariaDB too) a RDBMS! You gotta be kidding. You can even insert a string into a int field with MySQL (and SQLite for that matter).
MySQL simply ignores the rules the schema defined. So how can you ever trust such a "database system" (I honestly can't call MySQL that), and how can you trust the data you retrieve, is truly what you inserted.
Then I haven't even mentioned that the SQL standard says SQL statements are case insensitive, yet depending on where you installed MySQL databases, the table names may be case sensitive. eg the same database on FreeBSD or Linux is case sensitive, yet moving it to Windows it is not! What damn consistency is that! This issue is because the database tables are stored as files in a directory. So now the file system dictates the SQL statements!!
Developers should really stop believing the
hype of MySQL or MariaDB, and switch to a real RDBMS like Firebird or PostgreSQL.