Apache Derby了解引用和外键之间的区别

时间:2018-07-18 14:47:52

标签: java database derby

我知道外键是一个约束,引用是一个子句。

This also confuse me.Although it is mysql but not apache derby

This tells me how foreign key work but still confused for me I found out the answer also has the command like what i said references without foreign key

但是我的问题是,如果您可以创建具有引用列的表到另一个表而不使用外键的表,那有什么意义呢? 下面的命令仍然有效

create table newTable(ColumnName varchar(100) references oldTable(ColumnName))

the foreign key example at the bottom of this document use foreign key to make references

任何人都可以帮我解决一下,将带有外键的引用与不使用外键的区别

I found out in SQLite if you references without foreign key it is same as references with foreign key is apache derby run in same way?

1 个答案:

答案 0 :(得分:2)

“外键”是引用表的属性集。 (在许多实现中,人们不得不说“属性的有序集合”,因为许多实现也使顺序很重要,但这与理论背道而驰。)

参照完整性约束是这样的规则,即在[引用表中]外键属性中出现的[组合]值必须在[属性]中的键属性中显示为[组合]值。参考表]。 (“键属性”是符合关系理论的术语“键”的用法。它们可能是通过UNIQUE子句而不是KEY子句声明的,但这只是语法。从理论上讲,所有声明为唯一是关键。)

“ REFERENCES”子句是声明引用完整性约束的[最流行/最常用]手段。这是一种句法手段。它始终包含外键的规范,但此外,它还定义了引用表及其引用的属性。

由于非常罕见,因此基于 SAME 外键存在两个不同的参照完整性约束(例如,指向两个不同的引用表),因此使用所有这些术语是很常见的可以互换。