Можно ли проверить, есть ли у таблицы Informix первичный ключ

Можно ли проверить (запросом), существует ли первичный ключ таблицы Informix? Я должен проверить это из кода Java через EntityManager из javax.persistence.


person Chris311    schedule 19.10.2015    source источник
comment
Да, конечно, можно определить, есть ли у таблицы первичный ключ в Informix (см. вопрос, на который ссылается perdomoff в его answer. Как это сделать с javax.persistence и EntityManager - это отдельный вопрос, который требует большего знания Java, чем у меня.   -  person Jonathan Leffler    schedule 20.10.2015


Ответы (2)


Chris311, см. Ссылку ниже, где задан и решен аналогичный вопрос:

Запрос, чтобы проверить, существует ли первичный ключ на таблица в informix

Пользователь сначала ищет имя индекса для PK (столбец pk_idx), затем проверяет столбцы индекса (ищите то же имя индекса для ограничения PK).

person Perdomoff    schedule 19.10.2015

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

Например, MySQL поддерживает команду SHOW CREATE TABLE (см. здесь). Версия аналогичной команды Informix называется info. Подробнее см. В следующем обсуждении: Informix SQL - список всех полей и таблиц < / а>

API сохранения состояния Java может запускать любую команду, которая поддерживается текущей базой данных, включая команды управления, поэтому вы также можете запустить команду info. Я бы рекомендовал вам начать играть с этой командой, используя любой инструмент пользовательского интерфейса или командной строки, который запускает команды для вашей базы данных. Как только ваша команда заработает, попробуйте запустить ее из java.

person AlexR    schedule 19.10.2015
comment
Обратите внимание, что оператор Informix INFO понимается только программой DB-Access. Он переводит оператор INFO в один или несколько запросов к системному каталогу. - person Jonathan Leffler; 20.10.2015