Пакетный скрипт для выдачи команд в MySQL DB? - PullRequest
2 голосов
/ 16 апреля 2009

Я пытаюсь создать пакетный скрипт, который будет подключаться к базе данных mySQL и выполнить команду удаления:

@echo off
echo Resetting all assessments...
mysql -hlocalhost -urdfdev -p%1 rdf_feedback
delete from competency_question_answer;

Я буду запускать этот сценарий, предоставляя пароль в качестве аргумента командной строки, но все, что делает этот сценарий - подключается к базе данных, и будет отображаться приглашение mysql>. После того, как я выйду из mysql, остальные командные команды выполнятся (и не получатся, что неудивительно).

Как передать команды SQL из пакетного скрипта в консоль mysql? Это вообще возможно?

Ответы [ 4 ]

4 голосов
/ 16 апреля 2009

Вам нужно использовать инструменты командной строки. Я не знаю, существует ли для MySQL, но для SQL есть SQLCMD, а для Oracle есть OSQL.

То, что вы также можете сделать, это что-то вроде этого.

mysql -uuser -ppass < foo.sql

Где foo.sql - команды, которые вы хотите выполнить.

3 голосов
/ 16 апреля 2009

Возможно, вам потребуется подключиться несколько раз:

@echo off
echo Resetting all assessments...
mysql -hlocalhost -urdfdev -p%1 rdf_feedback -e delete from competency_question_answer;

Кроме того, вы должны иметь возможность поместить все свои команды в отдельный файл, например input.sql, и использовать:

mysql -hlocalhost -urdfdev -p%1 rdf_feedback <input.sql
2 голосов
/ 16 апреля 2009

echo "delete from competency_question_answer;" | mysql -hlocalhost -ur... и т. Д.

1 голос
/ 11 мая 2011

Лучше всего поместить несколько наборов команд в пакетные файлы .sql, и вы можете выполнить их несколько раз в файле .bat.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...