shell> mysql < batch-file
If you are running mysql under Windows and have some special characters in the file that cause problems, you can do this: C:\> mysql -e "source batch-file
"
If you need to specify connection parameters on the command line, the command might look like this: shell>When you use mysql this way, you are creating a script file, then executing the script.mysql -h
Enter password:host
-uuser
-p <batch-file
********
If you want the script to continue even if some of the statements in it produce errors, you should use the
--force
command-line option. Why use a script? Here are a few reasons:
- If you run a query repeatedly (say, every day or every week), making it a script allows you to avoid retyping it each time you execute it.
- You can generate new queries from existing ones that are similar by copying and editing script files.
- Batch mode can also be useful while you're developing a query, particularly for multiple-line commands or multiple-statement sequences of commands. If you make a mistake, you don't have to retype everything. Just edit your script to correct the error, then tell mysql to execute it again.
- If you have a query that produces a lot of output, you can run the output through a pager rather than watching it scroll off the top of your screen:
shell>
mysql <
batch-file
| more
- You can catch the output in a file for further processing:
shell>
mysql <
batch-file
> mysql.out
- You can distribute your script to other people so that they can also run the commands.
- Some situations do not allow for interactive use, for example, when you run a query from a cron job. In this case, you must use batch mode.
SELECT DISTINCT species FROM pet
looks like this when mysql is run interactively: +---------+ | species | +---------+ | bird | | cat | | dog | | hamster | | snake | +---------+In batch mode, the output looks like this instead:
species bird cat dog hamster snakeIf you want to get the interactive output format in batch mode, use
mysql -t
. To echo to the output the commands that are executed, use mysql -vvv
. You can also use scripts from the mysql prompt by using the
source
command or \.
command: mysql>source
mysql>filename
;\.
filename
No comments:
Post a Comment