-

mariadb :: select한 내용 파일로 쓰기 본문

DB

mariadb :: select한 내용 파일로 쓰기

lingi04 2018. 4. 29. 21:56

Syntax

SELECT ... INTO DUMPFILE 'file_path'

Description

SELECT ... INTO DUMPFILE is a SELECT clause which writes the resultset into a single unformatted row, without any separators, in a file. The results will not be returned to the client.

file_path can be an absolute path, or a relative path starting from the data directory. It can only be specified as a string literal, not as a variable. However, the statement can be dynamically composed and executed as a prepared statement to work around this limitation.

This statement is binary-safe and so is particularly useful for writing BLOB values to file. It can be used, for example, to copy an image or an audio document from the database to a file. SELECT ... INTO FILE can be used to save a text file.

The file must not exist. It cannot be overwritten. A user needs the FILE privilege to run this statement. Also, MariaDB needs permission to write files in the specified location. If the secure_file_priv system variable is set to a non-empty directory name, the file can only be written to that directory.

Since MariaDB 5.1, the character_set_filesystem system variable has controlled interpretation of file names that are given as literal strings.


설명 : 

SELECT ... INTO DUMPFILE 은 resultset을 format, 구분자 없이 single row로 file에 쓰는 쿼리 이다. result는 client에 전달되지 않는다.

file_path는 절대경로 혹은 data directory에서 시작하는 상대경로가 올 수 있다. 이 값은 변수가 아닌 string 형태로 들어와야 한다. 하지만  동적으로 쿼리를 생성 한 후 그 쿼리를 실행하는 방식으로 사용될 수 있다.

이 statement는 binary-safe하고 BLOB 값을 파일에 쓰는데 유용하다. 예를들어 이 statement는 database에서 image나 audio document를 파일로 쓰는 데 사용될 수 있다. text 파일을 저장하기 위해서 SELECT ... INTO FILE statement가 사용될 수 있다.

해당 파일은 없어야 한다. 이 statement를 실행하기 위해 user는 privilege가 필요하다. mariadb 또한 파일을 쓰기 위해서 특정 location에 대한 권한이 필요하다. If the secure_file_priv system variable is set to a non-empty directory name, the file can only be written to that directory.

MariaDB 5.1부터 character_set_filesystem system varible 이 literal string에 대한 해석을 지원하게 되었다.

사용 예)

SELECT user_info INTO DUMPFILE dump_file_path

FROM my_table

WHERE user_id = hh




출처 : https://mariadb.com/kb/en/library/select-into-dumpfile/

** 틀린 점이 보이면 말씀해 주시기 바랍니다.

'DB' 카테고리의 다른 글

mariadb :: 반드시 알아야 할 세가지  (0) 2018.04.29
디비 관련 개념 몇가지들  (0) 2018.04.10
Comments