запрос дампа для нескольких таблиц

0

Я пытаюсь получить выходной файл sql из запроса между тремя таблицами. Ниже мой код:

mysqldump --user=user --password=password --host=localhost dbname --where="SELECT v.ITEM_ID , v.CODE ,\
s.SENSOR , d.DESTINATIONCODE \
FROM  V_TABLE v, S_TABLE s ,D_TABLE d \
WHERE s.ITEM_ID = v.ITEM_ID \
AND s.CREATIONDATETIME <  '2014-2-16 00:00:00'\
AND v.DESTINATION_ID=d.ID" > /var/www/dumps/output_15_12_2017.sql

это даст мне ошибку:

mysqldump: Couldn't execute 'SELECT /*!40001 SQL_NO_CACHE */ * FROM 'COMMANDSPOOL' WHERE SELECT v.ITEM_ID , v.CODE ,s.SENSOR , d.DESTINATIONCODE FROM  V_TABLE v, S_TABLE s ,D_TABLE d  WHERE s.ITEM_ID = v.ITEM_ID AND s.CREATIONDATETIME <  '2014-2-16 00:00:00' AND v.DESTINATION_ID=d.ID': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT v.ITEM_ID , v.CODE ,s.SENSOR , d.DESTINATIONCODE FROM  V_TABLE' at line 1 (1064         )

возможно, это ошибка при использовании \

Теги:
dump

1 ответ

2
Лучший ответ

Чтобы использовать такой запрос, вы можете отправить его в клиент mysql (не утилиту mysqldump), а затем перенаправить этот вывод в файл:

echo "SELECT v.ITEM_ID , v.CODE ,\
s.SENSOR , d.DESTINATIONCODE \
FROM  V_TABLE v, S_TABLE s ,D_TABLE d \
WHERE s.ITEM_ID = v.ITEM_ID \
AND s.CREATIONDATETIME <  '2014-2-16 00:00:00'\
AND v.DESTINATION_ID=d.ID\
" | mysql --user=user --password=password --host=localhost dbname > /var/www/dumps/output_15_12_2017.sql

Если вы идете по этому маршруту, то возможно --batch и --table.

  • 0
    это сработало для меня. Сначала я захожу в mysql mysql -u name -p dbname а затем запускаю запрос select ..... into outfile '....sql';

Ещё вопросы

Сообщество Overcoder
Наверх
Меню