Получить имена столбцов в sqlite3 - PullRequest
6 голосов
/ 24 августа 2011

Я хотел бы напечатать содержимое своей таблицы sql и по этой причине я хотел бы получить имя столбца из таблицы.Одно решение, с которым я столкнулся, было:

SELECT sql FROM sqlite_master WHERE tbl_name = 'table_name' AND type = 'table'

Но, похоже, мне придется проанализировать результаты.ниже страница sqlite предлагает не использовать это: http://www.sqlite.org/pragma.html#pragma_full_column_names

Существует ли способ достичь этого.Кроме того, какой будет синтаксис для использования

PRAGMA table_info(table_name);

Выше решения были взяты из здесь

Ответы [ 4 ]

6 голосов
/ 24 августа 2011

Поскольку ваш вопрос помечен c Я предполагаю, что у вас есть доступ к API SQLite C.Если вы создаете подготовленный оператор с одной из prepare_v2 функций , которая выбирает из таблицы, которую вы хотите, вы можете использовать sqlite3_column_name , чтобы получить имя каждого столбца.

3 голосов
/ 24 августа 2011

Вы можете безопасно использовать PRAGMA table_info(table-name);, поскольку не не рекомендуется никоим образом (ваша публикация ссылается на другую прагму).

1 голос
/ 24 августа 2011
int sqlite3_get_table(
    sqlite3 *db,          /* An open database */
    const char *zSql,     /* SQL to be evaluated */
    char ***pazResult,    /* Results of the query */
    int *pnRow,           /* Number of result rows written here */
    int *pnColumn,        /* Number of result columns written here */
    char **pzErrmsg       /* Error msg written here */
    );

Если вы используете c / c ++, вы можете использовать функцию sqlite3_get_table (db, query, result, nrow, ncol, errmsg);

Сделать запрос как select * from table;

И первые несколько результатов result [0], result [1] ...... будут иметь имена столбцов.

0 голосов
/ 07 января 2019

Этот параметр переключает отображение имен столбцов как часть возврата для операторов выбора:

.headers on
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...