0

Oracle 如何使用在 USER_TAB_COLUMNS 视图中找到的 COLUMN_ID?我只需要确认它在创建隐式索引时不使用此内部列排序 - 例如当强制执行主键或创建唯一键约束时(即提供的键/约束列以相同的顺序使用 - 左向右而不是这些内部列排序)。(如果可能,请向我指出 Oracle 文档的方向。)。提前致谢。

4

1 回答 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 回答