Как найти последовательность, используемую для AUTO_INCREMENT?

#sql #ingres

#sql #ingres

Вопрос:

Прежде чем вы ответите, позвольте мне подчеркнуть, что это вопрос, связанный с СУБД Ingres.

Как и многие другие пользователи Ingres, которые в прошлом жаловались на форумах, я также сталкиваюсь с проблемой доступа при использовании AUTO_INCREMENT… Мне нужно выяснить последовательность, используемую для поля AUTO_INCREMENT, чтобы я мог предоставить к нему доступ, чтобы предотвратить некоторые досадные исключения…

Да, когда генерируется исключение (JDBC), я получаю имя рассматриваемой последовательности и могу это исправить. Но в случае, если у меня есть куча таблиц, я могу захотеть исправить их все с помощью скрипта.

Как найти, какая последовательность используется? (Я имею в виду его имя)

Аналогично, как узнать, в какой таблице используется определенная последовательность идентификаторов?

Пример: $iiidentity_sequence_0012936

Ответ №1:

Попробуйте это

 SELECT table_name,column_name, column_default_val
FROM iicolumns 
WHERE column_always_ident    = 'Y'
   OR column_bydefault_ident = 'Y'
ORDER BY 1,2
  

Комментарии:

1. Привет, Пол, это помогает, да. Я думал, что есть более простое решение, которое не требует запроса системного каталога…