我已经为在 Oracle SQL 中创建的多个表的每个约束定义了一个名称。
问题是,要删除特定表的列的约束,我需要知道为每个约束提供的名称,但我已经忘记了。
如何列出为表的每一列指定的所有约束名称?
有没有这样的SQL语句?
您需要查询数据字典,具体来说USER_CONS_COLUMNS
查看表列和相应的约束:
SELECT *
FROM user_cons_columns
WHERE table_name = '<your table name>';
仅供参考,除非您专门使用小写名称(使用双引号)创建表,否则表名称将默认为大写,因此请确保在查询中也是如此。
如果您希望查看有关约束本身的更多信息,请查询USER_CONSTRAINTS
view:
SELECT *
FROM user_constraints
WHERE table_name = '<your table name>'
AND constraint_name = '<your constraint name>';
如果表保存在不是默认架构的架构中,那么您可能需要将视图替换为:
all_cons_columns
and
all_constraints
添加到 where 子句:
AND owner = '<schema owner of the table>'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)