1.17 Telling mysql to Read Queries from Other Programs
1.17.1 Problem
You want to shove the output from another program into
mysql.
1.17.2 Solution
Use a pipe.
1.17.3 Discussion
An earlier section used the following command to show how
mysql can read SQL statements from a file:
% mysql cookbook < limbs.sql
mysql can also read a pipe, to receive output from
other programs as its input. As a trivial example, the preceding
command is equivalent to this one:
% cat limbs.sql | mysql cookbook
Before you tell me that I've qualified for this
week's "useless use of
cat award,"
allow me to observe that you can substitute other commands for
cat. The point is that any
command that produces output consisting of semicolon-terminated SQL
statements can be used as an input source for
mysql. This can be useful in many ways. For
example, the
mysqldump
utility is used to generate database backups. It writes a backup as a
set of SQL statements that recreate the database, so to process
mysqldump output, you feed it to
mysql. This means you can use the combination of
mysqldump and mysql to copy a
database over the network to another MySQL server:
% mysqldump cookbook | mysql -h some.other.host.com cookbook
Program-generated SQL also can be useful when you need to populate a
table with test data but don't want to write the
INSERT statements by hand. Instead, write a short
program that generates the statements and send its output to
mysql using a pipe:
% generate-test-data | mysql cookbook
1.17.4 See Also
mysqldump is discussed further in Chapter 10.
|