SQL for Oracle检查是否存在约束

时间:2010-12-08 15:33:20

标签: sql sql-server oracle

在SQL Server中,我可以使用下面的SQL检查是否存在约束,以及它是否为主键,触发器等。

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

Oracle的等价物是什么,因为我的查询使用SQL Server特定的表来查找答案。

1 个答案:

答案 0 :(得分:28)

SELECT * FROM USER_CONSTRAINTS WHERE CONSTRAINT_NAME = 'CONSTR_NAME';

CONSTRAINT_TYPE会告诉你它是什么类型的约束

  • R - 参考密钥(外键)
  • U - 唯一键
  • P - 主键
  • C - 检查约束

要查明某个对象是否为触发器,您可以查询USER_OBJECTSOBJECT_TYPE将告诉您对象是触发器,视图,过程等等。