LINUX.ORG.RU

Как разрешить zero dates в MariaDB?

 , ,


0

1

Нужно бэкап с одного сервера перенести на другой.
Но в бэкапе присутствуют, к примеру, такие конструкции:

`dt` timestamp DEFAULT NULL,


Т.е. поле с датой по умолчанию NULL, а в новых версиях MySQL такое запрещено

В интернете предлагают записать такое в файл в /etc/mysql/conf.d/:
[mysqld]
sql_mode=IGNORE_SPACE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION


Режим судя по результату запроса
show variables like 'sql_mode'

действительно меняется, но толку никакого -
1067 - Invalid default value for 'dt'


Версия базы MariaDB 10.1.37

В чем дело? Почему не работает?

★★★★★

В интернете предлагают записать такое в файл в /etc/mysql/conf.d

Где? Где конкретная ссылка? Кто мог предложить записать в этот файл всё, кроме нужной опции?

Она даже первая по списку идёт!

anonymous
()

Может так попробовать?

`dt` timestamp NULL

https://dev.mysql.com/doc/refman/8.0/en/timestamp-initialization.html

To permit a TIMESTAMP column to contain NULL, explicitly declare it with the NULL attribute. In this case, the default value also becomes NULL unless overridden with a DEFAULT clause that specifies a different default value. DEFAULT NULL can be used to explicitly specify NULL as the default value.

Т.е. «масло масляное» будет выглядеть так:

`dt` timestamp NULL DEFAULT NULL
AEP ★★★★★
()
Ответ на: комментарий от anonymous

С ALLOW_INVALID_DATES тоже не работает

Qwentor ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.