Получить список имен столбцов из таблицы базы данных Firebird

Как получить список имен столбцов в конкретной таблице?

ie.

Таблица жар-птиц:

| name | id | phone_number |

получить такой список:

columnList = ['name', 'id', 'phone_number']


person jramirez    schedule 08.10.2013    source источник


Ответы (2)


если вы хотите получить список имен столбцов в определенной таблице, вам нужен sql-запрос:

select rdb$field_name from rdb$relation_fields
where rdb$relation_name='YOUR-TABLE_NAME';

Я попробовал это в firebird 2.5, и это работает.

одинарные кавычки вокруг YOUR-TABLE-NAME необходимы кстати

person jramirez    schedule 08.10.2013
comment
Вы также можете добавить это предложение order by, чтобы получить имена полей в позиционном порядке: order by rdb$field_position - person dave-holm; 03.05.2014
comment
Также обратите внимание, что все имена таблиц Firebird пишутся в верхнем регистре. Таким образом, если ваша таблица называется CUSTOMERS, оператор SQL будет select rdb$field_name from rdb$relation_fields, где rdb$relation_name='CUSTOMERS' порядок по rdb$field_position; - person Andrew Dennison; 06.04.2016

Получить список столбцов (через запятую, в порядке расположения) для всей таблицы:

SELECT RDB$RELATION_NAME AS TABLE_NAME, list(trim(RDB$FIELD_NAME),',') AS COLUMNS
FROM RDB$RELATIONS
LEFT JOIN (SELECT * FROM RDB$RELATION_FIELDS ORDER BY RDB$FIELD_POSITION) USING (rdb$relation_name)
WHERE
(RDB$RELATIONS.RDB$SYSTEM_FLAG IS null OR RDB$RELATIONS.RDB$SYSTEM_FLAG = 0)
AND RDB$RELATIONS.rdb$view_blr IS null 
GROUP BY RDB$RELATION_NAME
ORDER BY 1
person pigmej    schedule 02.10.2019