2009-07-02 3 views
0

Я унаследовал страницу, подобную bugzilla, которая позволяет пользователям просматривать список ошибок. Я хотел бы расширить его, чтобы можно было ответить и закрыть их.Найти дополнительную информацию о базе данных

Проблема в том, что я мало знаю о структуре базы данных. Все, что у меня есть, это подробности подключения и несколько примеров sql-запросов, которые дают хорошие советы о нескольких таблицах. Как узнать тип базы данных (даже не знаю) и получить список таблиц и подробную информацию о них?

+1

Какая ОС вы используете? –

+0

@sheepsimulator: Windows. – ya23

ответ

2

Вы должны изучить файл данных базы данных данных, если он есть. Все зависит от того, какая именно база данных. Изучите немного, читайте дальше!

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

    SELECT * FROM SYS.ALL_TABLES; - для расчета таблиц

    SELECT * FROM SYS.ALL_TAB_COLUMNS WHERE owner = 'schema' и table_name = 'table_name_found_above';

  • Для SQLite, попробуйте запустить (хотя я сомневаюсь, что Bugzilla работает это):

    SELECT * FROM sqlite_master; - это должно перечислить все имена столбцов в операторе создания

  • В MySQL, PostgreSQL, SQL попытка сервера, запущенного:

    SELECT * FROM INFORMATION_SCHEMA.TABLES;

    SELECT * from INFORMATION_SCHEMA.columns WHERE table_schema = 'schema' и table_name = 'table';

  • В DB2, попробуйте:

    SELECT * FROM syscat.tables;

    SELECT * FROM SYSCAT.columns где tabname = 'table' и tabschema = 'schema';

Если вы не знаете, что ядро ​​базы данных он работает, просто попробуйте запустить кучу запросов таблицы в инструменте запросов, пока они не начнут возвращаться достоверные результаты; это поможет вам сузить, какой движок db работает. Затем вы можете заменить имена таблиц на запросы столбцов.

Указанные выше варианты должны помочь вам сжать его. Оттуда вы можете подтянуть документацию к базе данных и узнать больше об ее функциях. Либо это, либо я поговорю с администратором сервера, который запускает ваш трекер ошибок, который у вас есть сейчас, и посмотрите, сможет ли он/она выкопать больше информации.

+2

Для использования Firebird и Interbase: SELECT * FROM RDB $ RELATIONS –

+0

Спасибо, это хорошие предложения! – ya23

1

Я предполагаю, что у вас есть рабочее приложение, которое использует эту базу данных. Если он подключается через ODBC, вы можете (в Windows по крайней мере) включить ведение журнала ODBC. Они мучительны для ручного анализа, но это может быть дополнительным источником информации.

Как только вы знаете, к какой базе данных вы смотрите, запустите свой запросный инструмент по выбору и начните копать.

Смежные вопросы