#mysql #bash
#mysql #bash
Вопрос:
Итак, я пытаюсь принять это:
SELECT 'cran_juniper' AS `set`, c.*
FROM cran_juniper c
WHERE ROW(c.device_fqdn, c.device_ip, c.interface, c.admin_state, c.link_state, c.description) NOT IN
(
SELECT device_fqdn, device_ip, interface, admin_state, link_state, description
FROM cran_juniper_baseline
)
UNION ALL
SELECT 'cran_juniper_baseline' AS `set`, b.*
FROM cran_juniper_baseline b
WHERE ROW(b.device_fqdn, b.device_ip, b.interface, b.admin_state, b.link_state, b.description) NOT IN
(
SELECT device_fqdn, device_ip, interface, admin_state, link_state, description
FROM cran_juniper
)
into outfile 'today.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY 'n';
;
И вставьте его в сценарий bash. Учитывая, что в этом запросе есть множество специальных символов, мне трудно найти способ сделать это. Любая помощь была бы волшебной.
Ответ №1:
1-е решение с использованием here-doc :
mysql -h 127.0.0.1 <<'EOF'
SELECT 'cran_juniper' AS `set`, c.*
FROM cran_juniper c
...
;
EOF
2-е решение с использованием отдельного файла
mysql -h 127.0.0.1 < file.sql # you will put all of your query within this file
Проверьте
man bash | less /here-doc
Комментарии:
1. Это было одно, и намного проще, чем я думал, что это будет. Спасибо!