当前位置: 首页 > 知识库问答 >
问题:

在Oracle SQL中显示表的所有约束的名称

赵锐
2023-03-14

我已经为我在OracleSQL中创建的多个表的每个约束定义了一个名称。

问题是,要删除特定表的列的约束,我需要知道为每个约束提供的名称,我已经忘记了。

如何列出我为表的每一列指定的所有约束的名称?

这样做有什么SQL的说法吗?

共有3个答案

梁渊
2023-03-14

也许这会有帮助:

SELECT constraint_name, constraint_type, column_name
from user_constraints natural join user_cons_columns
where table_name = "my_table_name";

干杯

韩麒
2023-03-14
SELECT * FROM USER_CONSTRAINTS
方和豫
2023-03-14

需要查询数据字典,具体到USER_CONS_COLUMNS视图查看表列和相应约束:

SELECT *
  FROM user_cons_columns
 WHERE table_name = '<your table name>';

仅供参考,除非您专门使用小写名称(使用双引号)创建表,否则表名将默认为大写,因此请确保在查询中是大写的。

然后,如果您希望查看有关约束本身的更多信息,请查询USER\u CONSTRAINTS视图:

SELECT *
  FROM user_constraints
 WHERE table_name = '<your table name>'
   AND constraint_name = '<your constraint name>';

如果表保存在非默认模式的模式中,则可能需要将视图替换为:

all_cons_columns

all_constraints

在where子句中增加:

   AND owner = '<schema owner of the table>'
 类似资料:
  • 问题内容: 您好,我试图在我的一张表中显示约束,但是由于某种原因,我收到未选择任何行的消息。下面记录的是我创建的表。 这是我用来显示约束的代码。 我是一个菜鸟,所以我想确保自己了解什么地方出了问题。我曾尝试删除该表,以为我的约束没有发生- 创建表并在另一个表中引用TeamID时,我没有,也没有收到任何错误。因此,当我尝试删除表时,我会得到一条错误消息,当时正是我所希望的。 问题答案:

  • 问题内容: 我有尝试设置PK FK关系的表,但我想对此进行验证。如何显示PK / FK约束?我看到了此手册页,但未显示示例,我的Google搜索也没有结果。我的数据库是,我的约束表是和。 问题答案: 我用 这向您显示了以当前格式接收所需的SQL语句。您可以看到所有列及其类型(如),但它还显示约束信息(以及表类型,字符集等)。

  • 问题内容: 我创建了它们,但是我忘记了它们是哪个。 我只想 让他们看。 删除表上的所有约束。 问题答案:

  • 在Sybase ASE中完全删除数据库中的所有表而不删除数据库的最佳方法是什么?我一直在使用一个脚本:从这个问题开始,由于引用完整性,我试图删除数据库中的所有表时出错。 在MySQL中,我可以使用 有没有办法在Sybase ASE中实现这一点,或者可以扩展上面的脚本来循环约束?

  • 这个问题不能回答我的问题。我想在一个查询中选择所有元数据。

  • 问题内容: 好吧,所以我对PHP和SQL / MySQL还是相当陌生,因此感谢您的帮助。 我觉得我采取了正确的方法。我在php.net上搜索了“ MySQL显示所有表名”,它返回了不建议使用的方法,并建议使用MySQL查询,但不确定“模式”是什么意思,但是我搜索了“ SQL通配符”并得到了“% ”符号。根据我发现的所有内容,这应该可以工作并在末尾输出表名,但事实并非如此。有什么建议么?提前致谢。