OUTFILE option in mysql

Hi ,

Is there a batch process there for downloading data from mysql db to a file  like there is LOAD DATA INFILE for uploading. There is an option where you can redirect the result set from a select query onto a  file using OUTFILE. But i am looking for a more faster process.

Thanks in advance
LVL 1
harisundharAsked:
Who is Participating?
 
star_trekCommented:
You don't need to use OUTFILE, use mysql

try something like
mysql -h {host-name} -u {user-name} -p{passwd} -e {'query'} {dbname} > {outfile-name}

note query should be in single quotes
0
 
harisundharAuthor Commented:
Is there an option using the mysql command to set a delimiter and line sperator and enclosing each value by qoutes . Basically to change the format the values are written to the file.
0
 
todd_farmerCommented:
From http://dev.mysql.com/doc/refman/5.0/en/select.html:

 The SELECT ... INTO OUTFILE 'file_name' form of SELECT writes the selected rows to a file. The file is created on the server host, so you must have the FILE privilege to use this syntax. file_name cannot be an existing file, which among other things prevents files such as /etc/passwd and database tables from being destroyed. As of MySQL 5.0.19, the character_set_filesystem system variable controls the interpretation of the filename.

The SELECT ... INTO OUTFILE statement is intended primarily to let you very quickly dump a table to a text file on the server machine. If you want to create the resulting file on some client host other than the server host, you cannot use SELECT ... INTO OUTFILE. In that case, you should instead use a command such as mysql -e "SELECT ..." > file_name to generate the file on the client host.

SELECT ... INTO OUTFILE is the complement of LOAD DATA INFILE; the syntax for the export_options part of the statement consists of the same FIELDS and LINES clauses that are used with the LOAD DATA INFILE statement. See Section 13.2.5, “LOAD DATA INFILE Syntax”.

FIELDS ESCAPED BY controls how to write special characters. If the FIELDS ESCAPED BY character is not empty, it is used as a prefix that precedes following characters on output:

    *

      The FIELDS ESCAPED BY character
    *

      The FIELDS [OPTIONALLY] ENCLOSED BY character
    *

      The first character of the FIELDS TERMINATED BY and LINES TERMINATED BY values
    *

      ASCII NUL (the zero-valued byte; what is actually written following the escape character is ASCII ‘0’, not a zero-valued byte)

The FIELDS TERMINATED BY, ENCLOSED BY, ESCAPED BY, or LINES TERMINATED BY characters must be escaped so that you can read the file back in reliably. ASCII NUL is escaped to make it easier to view with some pagers.

The resulting file does not have to conform to SQL syntax, so nothing else need be escaped.

If the FIELDS ESCAPED BY character is empty, no characters are escaped and NULL is output as NULL, not \N. It is probably not a good idea to specify an empty escape character, particularly if field values in your data contain any of the characters in the list just given.

Here is an example that produces a file in the comma-separated values (CSV) format used by many programs:

SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt'
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  LINES TERMINATED BY '\n'
  FROM test_table;
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.