Spec-Zone.ru › MariaDB

COLUMN_GET

Синтаксис

COLUMN_GET(dyncol_blob, column_nr as type);
COLUMN_GET(dyncol_blob, column_name as type);

Описание

Получает значение динамического столбца по его имени. Если столбец с заданным именем не существует, будет возвращено NULL.

column_name as type требует указания типа данных динамического столбца, который вы читаете.

Это может показаться нелогичным: зачем указывать тип данных, который вы получаете? Разве система динамических столбцов не может определить тип данных из хранимых данных?

Ответ: SQL — это язык со статической типизацией. SQL-интерпретатору необходимо знать типы данных всех выражений до выполнения запроса (например, когда вы используете подготовленные запросы и выполняете "select COLUMN_GET(...)", API подготовленных запросов требует, чтобы сервер уведомлял клиента о типе данных считываемого столбца до выполнения запроса, и сервер может видеть, какой тип данных у столбца на самом деле).

Длины

Если вы выполняете запросы типа:

SELECT COLUMN_GET(blob, 'colname' as CHAR) ...

без указания максимальной длины (т.е. используя as CHAR, а не as CHAR(n)), MariaDB сообщит, что максимальная длина столбца результирующего набора равна 16 777 216. Это может привести к чрезмерному использованию памяти в некоторых клиентских библиотеках, поскольку они пытаются предварительно выделить буфер максимальной ширины результирующего набора. Чтобы избежать этой проблемы, используйте CHAR(n) всякий раз, когда вы используете COLUMN_GET в списке выбора.

См. Динамические столбцы: Типы данных для получения дополнительной информации о типах данных.

Контент, воспроизведенный на этом сайте, является собственностью его соответствующих владельцев, и этот контент не проверяется 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/column_get/

Spec-Zone.ru

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