Sunday, October 25, 2009

1.17 Telling mysql to Read Queries from Other Programs




I l@ve RuBoard










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,"[5]
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:


[5] Under
Windows, the equivalent would be the "useless use of
type award":



% 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.










    I l@ve RuBoard



    No comments:

    Post a Comment