Избегайте преобразования Mysqldump datetime ноль в ноль "0000-00-00 00:00:00" - PullRequest
1 голос
/ 06 ноября 2019

По какой-то причине команда mysqldump превращает NULL-значения столбца datetime в нулевые значения даты-времени ("0000-00-00 00:00:00).

Чтобы решить эту ситуацию, я разбираю sqlвывод с помощью SED для замены этой строки, но мне интересно, есть ли лучший способ сделать это (параметр mysqldump или параметр вставки mysql)

Некоторые «специальные» детали:

  • Это нене происходит, когда я извлекаю полную базу данных (тогда экспорт работает нормально)
  • Я использую mysqldump с трюком внутреннего соединения (--where = "id in (выберите идентификатор из целевой таблицы _with_inner_joins)) для извлеченияподмножество записей
  • Это любопытно, потому что у меня несколько столбцов даты и времени в моей базе данных, определенных одинаково, и происходит только с одной таблицей и только несколькими полями даты и времени в этой таблице.

Это более или менее команда, которую я использую для извлечения данных:

      mysqldump ${_credentials} table_anme --no_create_info --lock-all-tables --extended-insert --where "id in (SELECT table_name.id FROM  table_name INNER JOIN other_table ot ON table_name.id = ot.id_table_name ...)" > /backup/table_name.sql
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...