Есть такое забавное выражение "мыши плакали кололись но продолжили есть кактус".
Цитата одного из сотрудников MailRu Group звучит так - "Кто то как мы, перешёл на PostgreSQL и теперь счастлив, а кто то остался на MySQL и продолжает есть кактус".
Собственно приведу всего один простой наглядный пример почему это так.
Для эксперименты были взяты MariaDB 10.1 и 10.2, последняя соответствует MySQL 5.7
MariaDB [(none)]> create database test;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> use test
Database changed
Создаю таблицу
MariaDB [test]> CREATE TABLE k (
-> A INT NULL,
-> B NUMERIC (4, 2)
-> );
Query OK, 0 rows affected (1.22 sec)
Делаю вставку явно не вписывающуюся в таблицу! и о чудо всё отработало!
MariaDB [test]> INSERT INTO k VALUE (NULL, 1234.5678);
Query OK, 1 row affected, 1 warning (0.14 sec)
Делаю выборку и результат совсем не тот что был во время вставки!!!
MariaDB [test]> SELECT * FROM k;
+------+-------+
| A | B |
+------+-------+
| NULL | 99.99 |
+------+-------+
1 row in set (0.00 sec)
MariaDB [(none)]> create database test;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> use test
Database changed
Создаю таблицу
MariaDB [test]> CREATE TABLE k (
-> A INT NULL,
-> B NUMERIC (4, 2)
-> );
Query OK, 0 rows affected (1.68 sec)
Делаю вставку явно не вписывающуюся в таблицу, и ... в последней версии есть проверка на ошибки
MariaDB [test]> INSERT INTO k VALUE (NULL, 1234.5678);
ERROR 1264 (22003): Out of range value for column 'B' at row 1
Вообще в последней версии много чего добавили для проверок на криворукость и невнимательность но не так много как хотелось бы.
Я думаю не стоит объяснять смыл перехода на MySQL 5.7 или MariaDB 10.2
Да и если грамотно делались запросы и учитывались все моменты то переход должен пройти прозрачно и ошибок не будет. Если всё делалось задней левой то и результат будет такой же. ;-)
Цитата одного из сотрудников MailRu Group звучит так - "Кто то как мы, перешёл на PostgreSQL и теперь счастлив, а кто то остался на MySQL и продолжает есть кактус".
Собственно приведу всего один простой наглядный пример почему это так.
Для эксперименты были взяты MariaDB 10.1 и 10.2, последняя соответствует MySQL 5.7
Первый пример с MariaDB 10.1
Создаю базу testMariaDB [(none)]> create database test;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> use test
Database changed
Создаю таблицу
MariaDB [test]> CREATE TABLE k (
-> A INT NULL,
-> B NUMERIC (4, 2)
-> );
Query OK, 0 rows affected (1.22 sec)
Делаю вставку явно не вписывающуюся в таблицу! и о чудо всё отработало!
MariaDB [test]> INSERT INTO k VALUE (NULL, 1234.5678);
Query OK, 1 row affected, 1 warning (0.14 sec)
Делаю выборку и результат совсем не тот что был во время вставки!!!
MariaDB [test]> SELECT * FROM k;
+------+-------+
| A | B |
+------+-------+
| NULL | 99.99 |
+------+-------+
1 row in set (0.00 sec)
А теперь пример с MariaDB 10.2
Создаю базу testMariaDB [(none)]> create database test;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> use test
Database changed
Создаю таблицу
MariaDB [test]> CREATE TABLE k (
-> A INT NULL,
-> B NUMERIC (4, 2)
-> );
Query OK, 0 rows affected (1.68 sec)
Делаю вставку явно не вписывающуюся в таблицу, и ... в последней версии есть проверка на ошибки
MariaDB [test]> INSERT INTO k VALUE (NULL, 1234.5678);
ERROR 1264 (22003): Out of range value for column 'B' at row 1
Вообще в последней версии много чего добавили для проверок на криворукость и невнимательность но не так много как хотелось бы.
Я думаю не стоит объяснять смыл перехода на MySQL 5.7 или MariaDB 10.2
Да и если грамотно делались запросы и учитывались все моменты то переход должен пройти прозрачно и ошибок не будет. Если всё делалось задней левой то и результат будет такой же. ;-)
Комментариев нет:
Отправить комментарий