Spec-Zone.ru › MariaDB

Таблица COLUMNS схемы информации

Таблица схемы информации COLUMNS предоставляет информацию о столбцах каждой таблицы на сервере.

Она содержит следующие столбцы:

Столбец Описание
TABLE_CATALOG Всегда содержит строку 'def'.
TABLE_SCHEMA Имя базы данных.
TABLE_NAME Имя таблицы.
COLUMN_NAME Имя столбца.
ORDINAL_POSITION Позиция столбца в таблице. Может использоваться для сортировки.
COLUMN_DEFAULT Значение по умолчанию для столбца. Литералы заключены в кавычки, чтобы отличить их от выражений. NULL означает, что у столбца нет значения по умолчанию. В MariaDB 10.2.6 и ранее кавычки не использовались для значений по умолчанию, и NULL может означать, что значения по умолчанию нет или что значение столбца по умолчанию NULL.
IS_NULLABLE Может ли столбец содержать NULL.
DATA_TYPE Тип данных столбца.
CHARACTER_MAXIMUM_LENGTH Максимальная длина.
CHARACTER_OCTET_LENGTH То же, что и CHARACTER_MAXIMUM_LENGTH за исключением многобайтовых кодировок символов.
NUMERIC_PRECISION Для числовых типов - точность (количество значащих цифр) столбца. NULL если это не числовое поле.
NUMERIC_SCALE Для числовых типов - масштаб (значащие цифры справа от десятичной точки). NULL, если это не числовое поле.
DATETIME_PRECISION Точность дробной части секунды или NULL если это не тип данных времени.
CHARACTER_SET_NAME Кодировка символов, если это не двоичный строковый тип данных, в противном случае NULL.
COLLATION_NAME Сортировка, если это не двоичный строковый тип данных, в противном случае NULL.
COLUMN_TYPE Определение столбца, расширение MySQL и MariaDB.
COLUMN_KEY Тип индекса. PRI для первичного ключа, UNI для уникального индекса, MUL для составного индекса. Расширение MySQL и MariaDB.
EXTRA Дополнительная информация о столбце, например, является ли столбец скрытым или WITHOUT SYSTEM VERSIONING если таблица не является таблицей с системой версий. Расширение MySQL и MariaDB.
PRIVILEGES Какие привилегии у вас есть для столбца. Расширение MySQL и MariaDB.
COLUMN_COMMENT Комментарии к столбцу.
IS_GENERATED Указывает, является ли значение столбца сгенерированным (виртуальным или вычисляемым). Может быть ALWAYS или NEVER.
GENERATION_EXPRESSION Выражение, используемое для вычисления значения столбца в сгенерированном (виртуальном или вычисляемом) столбце.

Она предоставляет информацию, аналогичную, но более полную, чем SHOW COLUMNS и mariadb-show.

Примеры

SELECT * FROM information_schema.COLUMNS\G
...
*************************** 9. row ***************************
           TABLE_CATALOG: def
            TABLE_SCHEMA: test
              TABLE_NAME: t2
             COLUMN_NAME: j
        ORDINAL_POSITION: 1
          COLUMN_DEFAULT: NULL
             IS_NULLABLE: YES
               DATA_TYPE: longtext
CHARACTER_MAXIMUM_LENGTH: 4294967295
  CHARACTER_OCTET_LENGTH: 4294967295
       NUMERIC_PRECISION: NULL
           NUMERIC_SCALE: NULL
      DATETIME_PRECISION: NULL
      CHARACTER_SET_NAME: utf8mb4
          COLLATION_NAME: utf8mb4_bin
             COLUMN_TYPE: longtext
              COLUMN_KEY: 
                   EXTRA: 
              PRIVILEGES: select,insert,update,references
          COLUMN_COMMENT: 
            IS_GENERATED: NEVER
   GENERATION_EXPRESSION: NULL
...
CREATE TABLE t (
  s1 VARCHAR(20) DEFAULT 'ABC',
  s2 VARCHAR(20) DEFAULT (concat('A','B')),
  s3 VARCHAR(20) DEFAULT ("concat('A','B')"),
  s4 VARCHAR(20),
  s5 VARCHAR(20) DEFAULT NULL,
  s6 VARCHAR(20) NOT NULL,
  s7 VARCHAR(20) DEFAULT 'NULL' NULL,
  s8 VARCHAR(20) DEFAULT 'NULL' NOT NULL
);

SELECT 
  table_name, 
  column_name, 
  ordinal_position, 
  column_default,
  column_default IS NULL
FROM information_schema.COLUMNS
WHERE table_schema=DATABASE()
AND TABLE_NAME='t';

Из MariaDB 10.2.7:

+------------+-------------+------------------+-----------------------+------------------------+
| table_name | column_name | ordinal_position | column_default        | column_default IS NULL |
+------------+-------------+------------------+-----------------------+------------------------+
| t          | s1          |                1 | 'ABC'                 |                      0 |
| t          | s2          |                2 | concat('A','B')       |                      0 |
| t          | s3          |                3 | 'concat(''A'',''B'')' |                      0 |
| t          | s4          |                4 | NULL                  |                      0 |
| t          | s5          |                5 | NULL                  |                      0 |
| t          | s6          |                6 | NULL                  |                      1 |
| t          | s7          |                7 | 'NULL'                |                      0 |
| t          | s8          |                8 | 'NULL'                |                      0 |
+------------+-------------+------------------+-----------------------+------------------------+

В приведенных выше результатах две одинарные кавычки в concat(''A'',''B'') указывают на экранированную одинарную кавычку — см. строковые литералы. Обратите внимание, что хотя mysql-command-line-client по-видимому отображает то же значение по умолчанию для столбцов s5 и s6, первое является 4-символьной строкой "NULL", а второе — значение SQL NULL.

MariaDB 10.2.6 и ранее:

+------------+-------------+------------------+-----------------+------------------------+
| table_name | column_name | ordinal_position | column_default  | column_default IS NULL |
+------------+-------------+------------------+-----------------+------------------------+
| t          | s1          |                1 | ABC             |                      0 |
| t          | s2          |                2 | concat('A','B') |                      0 |
| t          | s3          |                3 | concat('A','B') |                      0 |
| t          | s4          |                4 | NULL            |                      1 |
| t          | s5          |                5 | NULL            |                      1 |
| t          | s6          |                6 | NULL            |                      1 |
| t          | s7          |                7 | NULL            |                      0 |
| t          | s8          |                8 | NULL            |                      0 |
+------------+-------------+------------------+-----------------+------------------------+
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проверяется предварительно 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/information-schema-columns-table/

Spec-Zone.ru

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