Spec-Zone.ru › MariaDB

SELECT INTO OUTFILE

Синтаксис

SELECT ... INTO OUTFILE 'file_name'
        [CHARACTER SET charset_name]
        [export_options]

export_options:
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]

Описание

SELECT INTO OUTFILE записывает результирующие строки в файл и позволяет использовать разделители столбцов и строк для указания конкретного формата вывода. По умолчанию разделители полей — табуляции (\t), а разделители строк — символы новой строки (\n).

Файл не должен существовать. Его нельзя перезаписать. Для выполнения этого оператора пользователю требуется привилегия FILE. Кроме того, MariaDB должна иметь разрешение на запись файлов в указанном месте. Если переменная среды secure_file_priv установлена в имя непустого каталога, файл можно записывать только в этот каталог.

Оператор LOAD DATA INFILE дополняет SELECT INTO OUTFILE.

Наборы символов

Оператор CHARACTER SET указывает набор символов, в котором должны быть записаны результаты. Без этого оператора преобразование не происходит (используется двоичный набор символов). В этом случае, если есть несколько наборов символов, вывод будет содержать их тоже, и перезагрузка может быть затруднена.

В случаях, когда у вас есть два сервера, использующих разные наборы символов, использование SELECT INTO OUTFILE для передачи данных с одного на другой может привести к непредвиденным результатам. Чтобы обеспечить правильную интерпретацию MariaDB последовательностей escape, используйте CHARACTER SET оператор как в операторе SELECT INTO OUTFILE , так и в последующем операторе LOAD DATA INFILE.

Пример

Следующий пример создаёт файл в формате CSV:

SELECT customer_id, firstname, surname from customer
  INTO OUTFILE '/exportdata/customers.txt'
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  LINES TERMINATED BY '\n';

Следующий синтаксис ANSI также поддерживается для простого SELECT без UNION

SELECT customer_id, firstname, surname INTO OUTFILE '/exportdata/customers.txt'
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  LINES TERMINATED BY '\n'
  FROM customers;

Если вы хотите использовать синтаксис ANSI с UNION или подобными конструкциями, вы должны использовать синтаксис:

SELECT  * INTO OUTFILE "/tmp/skr3" FROM (SELECT * FROM t1 UNION SELECT * FROM t1);

См. также

  • SELECT
  • LOAD_DATA() функция
  • LOAD DATA INFILE
  • SELECT INTO Переменная
  • SELECT INTO DUMPFILE
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержание не проверяется заранее компанией MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают взгляды MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/select-into-outfile/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API