Проверить структуру базы данных? (SQLite в C ++ / Qt) - PullRequest
9 голосов
/ 20 июля 2010

Мне было интересно, как лучше всего проверить структуру моей базы данных с помощью SQLite в Qt / C ++. Я использую SQLite, так что есть файл, который содержит мою базу данных, и я хочу убедиться, что при запуске программы база данных структурирована так, как она должна быть - то есть, у нее есть X таблиц с собственными Y столбцами с соответствующим названием и т. д. Может ли кто-нибудь указать мне правильное направление? Большое спасибо!

Ответы [ 2 ]

6 голосов
/ 20 июля 2010

Вы можете получить список всех таблиц в базе данных с помощью этого запроса:

select tbl_name from sqlite_master;

И затем для каждой возвращенной таблицы выполните этот запрос, чтобы получить информацию о столбцах

pragma table_info(my_table);

Для прагмы каждая строка набора результатов будет содержать: индекс столбца, имя столбца, сходство типа столбца, может ли столбец иметь значение NULL, и значение по умолчанию для столбца.

(япри условии, что вы знаете, как выполнять SQL-запросы к вашей базе данных в интерфейсе SQLite C.)

2 голосов
/ 02 февраля 2014

Если у вас есть QT и, следовательно, QtSql под рукой, вы также можете использовать метод QSqlDatabase::tables() ( API doc ) для получения таблиц и QSqlDatabase::record(tablename) для получения имен полей.Он также может дать вам первичный ключ (и), но для получения более подробной информации вам нужно будет следовать совету pkh, чтобы использовать table_info прагму.

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