#mysql #shell
#mysql #оболочка
Вопрос:
Мне нужно сделать несколько запросов к базе данных MySQL. Мой вопрос заключается в следующем:
- Должен ли я добавить следующее в файл, а затем выполнить файл:
эхо «Проверка»
mysql -h 192.168.100.1 -t -u umane -имя таблицы < query.sql
эхо «Проверка»
mysql -h 192.168.100.1 -t -u umane -имя таблицы < query2.sql
эхо «Проверка»
mysql -h 192.168.100.1 -t -u umane -имя таблицы < query3.sqlecho
«Проверяет»
mysql -h 192.168.100.1 -t -u umane -передает имя таблицы < query4.sql
- Или я создаю один файл «query.sql», который содержит все sql-запросы. Если да, могу ли я каким-либо образом повторить «Проверку» statments каким-либо образом?
Ответ №1:
username="my_sql username"
password="my_sql password"
result=`mysql -h 192.168.100.1 --port=$port -u $username --password=$password -e 'select * from database.table_name'`
echo $result
Ответ №2:
Вы можете создать один файл sql, а затем добавить несколько операторов SELECT, подобных этому
// Does not print anyting
CREATE TABLE test (col1 int, col2 varchar(2));
// Prints a non-existing table with 1 column and 1 row
SELECT "CHECK 1" AS "Test result";
// This does prints some output
DESCRIBE test;
// Prints the check 'table' again
SELECT "CHECK 2" AS "Test result";
Результат этого выглядит следующим образом
my@server:~$ mysql -t -u root databasename < sqltest
-------------
| Test result |
-------------
| CHECK 1 |
-------------
------- ------------ ------ ----- --------- -------
| Field | Type | Null | Key | Default | Extra |
------- ------------ ------ ----- --------- -------
| col1 | int(11) | YES | | NULL | |
| col2 | varchar(2) | YES | | NULL | |
------- ------------ ------ ----- --------- -------
-------------
| Test result |
-------------
| CHECK 2 |
-------------
— редактировать, да, то же самое, что и предложение Димитра
Ответ №3:
Поместите все ваши операторы sql в source.sql, и вы перенаправите вывод в output.txt
mysql -t -uuserid -ppassword -hhostname < source.sql > output.txt
Ответ №4:
Вы можете добавить текстовые (и временные метки) выборки в коде SQL:
% mysql -NBe "select now(); select 'check'; select now();select 'check'"
2011-09-29 14:46:15
check
2011-09-29 14:46:15
check
Таким образом, ваш отдельный файл SQL будет выглядеть так:
--- queries from sql1...
SELECT NOW()
SELECT 'check';
-- queries from sql2...