Oracle 如何使用在 USER_TAB_COLUMNS 视图中找到的 COLUMN_ID?我只需要确认它在创建隐式索引时不使用此内部列排序 - 例如当强制执行主键或创建唯一键约束时(即提供的键/约束列以相同的顺序使用 - 左向右而不是这些内部列排序)。(如果可能,请向我指出 Oracle 文档的方向。)。提前致谢。
问问题
641 次
1 回答
1
很难找到说明它不做某事的东西,但是没有任何东西说明它将column_id
用来覆盖索引创建。
您可以在此处查看column_id
文档中的所有参考;唯一看起来很重要的是视图。all_tab_columns
all_ind_columns
您可以通过查询视图来验证索引中使用的列的顺序,您将能够看到它之间没有强制关系column_position
——这来自索引创建命令中列出的列的顺序——和column_id
.
如果您对检查支持约束的索引特别感兴趣,可以执行以下操作:
select ac.owner, ac.table_name, ac.constraint_name, ac.index_owner,
ac.index_name, aic.column_position, aic.column_name
from all_constraints ac
join all_ind_columns aic on aic.index_owner = coalesce(ac.index_owner, ac.owner)
and aic.index_name = ac.index_name
order by 1, 2, 3, 6;
...根据需要为所有者或表添加过滤器。
于 2013-02-22T16:12:59.410 回答