У меня есть большая база данных SQL, где мне нужно проверить структуру таблиц и столбцов (а не сами данные). Поэтому мне нужно сгенерировать список всех таблиц, затем для каждой таблицы, всех ее столбцов, затем для каждого столбца, его типа данных, длины / точности, порядкового номера и того, является ли он частью первичного ключа для этой таблицы. .
Я могу получить большую часть того, что мне нужно, с помощью следующего запроса:
SELECT TABLE_NAME, ORDINAL_POSITION, COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, NUMERIC_PRECISION, NUMERIC_SCALE
FROM INFORMATION_SCHEMA.COLUMNS
Однако я не уверен, как проверить, является ли столбец частью первичного ключа. Кроме того, для тех таблиц, где PK состоит из более чем одного столбца, я хочу знать порядковый номер каждого столбца в ключе. Информация, которую я нашел до сих пор, касается установки ключа, а не его чтения.
Я заинтересован в том, чтобы сделать это как в SQL Server, так и в Oracle.