@askurashev

Что происходит при повторном запуске команды MySQL source?

Добрый день.
Импортирую большую базу данных посредством команды MySQL source. Выполнение команды периодически прерывается, запускаю заново. Процесс идет дальше.
Что происходит при повторном запуске? Проверяется наличие уже импортированных записей, они пропускаются и импортируется отсутствующие?
Размер базы в ходе этих манипуляций увеличивается.
  • Вопрос задан
  • 154 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Akina
Сетевой и системный админ, SQL-программист.
Что происходит при повторном запуске? Проверяется наличие уже импортированных записей, они пропускаются и импортируется отсутствующие?

Никаких проверок. Запуск с самого начала.

При повторном запуске следует учитывать, что часть запросов из скрипта уже были выполнены и, скорее всего, зафиксированы. В этом случае повторный запуск может привести: к дублированию записей (если дублирование допустимо структурой), к ошибке дублирования (если не допускает - при этом вообще сколько повторно не запускай, до конца не доберёшься), к получению некорректных данных (например, при наличии агрегирующих триггеров)...

В общем, как обычно. Если возникла ошибка, надо не пытаться запустить повторно, типа авось пролезет (почти наверняка - не пролезет), а разбираться, почему возникла ошибка, и устранять причину.
Ответ написан
Комментировать
Melkij
@Melkij
PostgreSQL DBA
source читает указанный файл с начала и до конца, передаёт серверу как будто это SQL команды. Никакой дополнительной логики не предполагается.
https://dev.mysql.com/doc/refman/8.0/en/mysql-batc...

Эквивалент "mysql db_name < text_file"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы