mysqldump как вместо insert сделать update?

296
26 мая 2017, 13:00

Использую для дампа базы данных на тестовом сервере утилиту mysqldump которая запускается по крону.

mysqldump --host=127.0.0.1 --skip-add-drop-table --skip-add-locks --no-create-info --user=root --password='root' stead > tead.sql

На продакшене для импорта использую:

mysql --user=root --password='root'  test < afostead.sql

Так же по крону запускается.

В файл дамп попадает примерно следующая информация.

INSERT INTO `im_gruppy` VALUES (100,'Бумага для оргтехники',1,'100.png',1);

Проблема заключается в том, что при insert когда находит Duplicate entry '1' for key 'PRIMARY' импорт прекращается. И хотелось бы еще обновлять старые записи.

Подскажите как можно с помощью mysqldump и mysql делать update строк и если строки нет то insert?

Answer 1

Вот пример запроса, дальше разберетесь

INSERT INTO `table` (id, name, age) VALUES(1, "A", 19) ON DUPLICATE KEY UPDATE name="A", age=19

mysqldump --host=127.0.0.1 --skip-add-drop-table --skip-add-locks --no-create-info --replace --user=root --password='root' stead > tead.sql

READ ALSO
mysqldump: Couldn&#39;t find table

mysqldump: Couldn't find table

При выполнении команды дампа mysql все проходит хорошо, но если запустить эту же команду, сразу после выполнения предыдущего бэкапа, то mysqldump...

328
Не получается получить доступ к базе через Java приложение Google Cloud Platform

Не получается получить доступ к базе через Java приложение Google Cloud Platform

В данный момент пытаюсь разместить простенькое приложение на Google CloudНо открываются пока только начальная страница (Логин) и страница регистрации

241
PHP. MySQL. PDO

PHP. MySQL. PDO

Есть такой код

261
Не соединяет результат двух таблиц

Не соединяет результат двух таблиц

Надо объединить результат с двух таблиц

264