Oracle SQL DEVELOPER示例HR用户中的PK / UK索引

时间:2014-12-26 11:43:56

标签: sql oracle oracle11g

在Oracles sql数据库11g上,我有一个示例数据库。除了什么意味着PK / UK索引(我知道这个捷径代表什么)以及为什么架构中包含的每个关系都在那里我理解了所有内容:" country_c_id_pk"从一些儿童边桌。 这个字段是什么,DB的每个关系都有相同的数据? 第一张图显示了整张表和其他一些关系的属性。

http://i.stack.imgur.com/CxGS0.jpg:一般观点

http://i.stack.imgur.com/Y9AvS.png

http://i.stack.imgur.com/B51Xs.png

http://i.stack.imgur.com/JL1qa.png

1 个答案:

答案 0 :(得分:1)

好的,你知道PK是什么意思,英国意味着什么。下一个问题 - 数据库如何维护这些约束。

如果你有1&#39表; 000' 000' 000记录,并要插入另一个之一,它' S很伤心地扫描这一切从开始到结束,检查和#39;这里有相同的ID吗?'。它' S很伤心做到这一点。而不是它,当任何人创建PK或UK时,数据库检查表是否在这些列上有索引。如果索引存在 - 数据库使用它来检查ID的存在。如果找不到合适的索引 - 数据库会自动创建它。

此属性显示将使用的索引。

下一个问题是为什么所有表都具有相同的值。我想这只是一个错误。百万SQLDeveloper错误之一。如果你想知道真相,请执行以下命令:

select
  t.TABLE_NAME,
  c.CONSTRAINT_NAME,
  c.INDEX_NAME
from
  user_tables t,
  user_constraints c
where
  t.TABLE_NAME = c.TABLE_NAME and
  c.CONSTRAINT_TYPE = 'P'

在大多数情况下,约束名称和索引名称相同,它表示自动创建的索引。但在某些情况下,开发人员首先使用索引,然后约束使用此索引,如果开发人员同时命名了这两个,则名称可以是不同的。