По какой-то причине команда 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