Для импорта только отсутствующих строк с использованием резервной копии в MySQL можно воспользоваться оператором INSERT IGNORE. Этот оператор позволяет вставить строки в таблицу, игнорируя строки с дублирующимся ключом.
Пример использования оператора INSERT IGNORE при импорте данных из резервной копии:
```
LOAD DATA INFILE '/path/to/backup/file.txt'
IGNORE
INTO TABLE your_table
FIELDS TERMINATED BY ','
(enc_col1, enc_col2, enc_col3);
```
Где:
- /path/to/backup/file.txt - путь к файлу резервной копии
- your_table - название таблицы, в которую нужно импортировать данные
- enc_col1, enc_col2, enc_col3 - названия столбцов, в которые нужно импортировать данные
Чтобы восстановить записи в таблице SQL из экспортированной резервной копии таким образом, чтобы сохранить новые данные и восстановить отсутствующие данные, можно выполнить следующие шаги:
1. Создайте новую временную таблицу, которая будет содержать все поля, в том числе идентификаторы, из вашего экспортированного файла.
2. Загрузите данные из резервной копии в эту временную таблицу с помощью оператора LOAD DATA INFILE.
3. Используйте операторы INSERT IGNORE или INSERT ... ON DUPLICATE KEY UPDATE, чтобы вставить данные из временной таблицы в основную таблицу. Новые записи будут вставлены, а существующие записи будут обновлены (если указано).
Пример использования оператора INSERT ... ON DUPLICATE KEY UPDATE при восстановлении данных из резервной копии:
```
INSERT INTO your_table (id, col1, col2)
SELECT id, col1, col2 FROM temp_table
ON DUPLICATE KEY UPDATE col1 = VALUES(col1), col2 = VALUES(col2);
```
Где:
- your_table - название основной таблицы, в которую нужно восстановить данные
- temp_table - название временной таблицы, содержащей данные из резервной копии
- id, col1, col2 - названия столбцов, которые нужно восстановить
Таким образом, можно восстановить отсутствующие данные и сохранить новые данные из резервной копии.