I am trying to create a batch script that would connect to a mySQL database and issue a delete command:
@echo off
echo Resetting all assessments...
mysql -hlocalhost -urdfdev -p%1 rdf_feedback
delete from competency_question_answer;
I will run this script providing the password as a command-line argument, but all this script does is, connects to the database, and the mysql>
prompt will be shown. After I exit from mysql, the rest of the batch commands get to execute (and fail, no surprise).
How can I pass the SQL commands from the batch script to the mysql console? Is this even possible?
You may need to connect multiple times:
Alternatively, you should be able to put all your commands in a separate file such as
input.sql
and use:Putting multiple sets of commands into .sql batch files works best, and you can execute multiples of these in the .bat file.
echo "delete from competency_question_answer;" | mysql -hlocalhost -ur...
etc.You need to use command line tools. I don't know if there exists any for MySQL but for SQL there is SQLCMD and for Oracle there is OSQL.
What you can also do is something like this.
Where foo.sql is the commands you want to execute.