SQL для Oracle, чтобы проверить, существует ли ограничение - PullRequest
11 голосов
/ 08 декабря 2010

В SQL Server я могу использовать приведенный ниже SQL, чтобы проверить, существует ли ограничение и является ли он первичным ключом, триггером и т. Д.

SELECT * 
    FROM dbo.sysobjects 
    WHERE id = OBJECT_ID(N'[SCHEMA].[TABLENAME]') 
        AND OBJECTPROPERTY(id, N'IsPrimaryKey') = 1

Что будет эквивалентно Oracle, потому что мой запрос использует таблицы SQL Server, чтобы найти ответ.

1 Ответ

28 голосов
/ 08 декабря 2010
SELECT * FROM USER_CONSTRAINTS WHERE CONSTRAINT_NAME = 'CONSTR_NAME';

THE CONSTRAINT_TYPE скажет вам, что это за тип

  • R - Ссылочный ключ (внешний ключ)
  • U - Уникальный ключ
  • P - первичный ключ
  • C - Проверить ограничение

Чтобы узнать, является ли объект триггером, вы можете запросить USER_OBJECTS. OBJECT_TYPE сообщит вам, является ли объект триггером, представлением, процедурой и др.

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