这两个我很混淆。他们是相同还是不同?有些书或人说他们是一样的,有些则说他们不一样。我试过但没有找到任何真实的答案。
请大家解决它。外键和引用键有什么区别?
回答
“引用键”在美国英语中不是关系建模或SQL实现中的正常技术术语。
外键“引用”某个其他表中的键;这可能是混淆来自何处吗?
你真的不叫东西参考关键 ...他们是同样的事情......你可能会看到这个词引用 SQLite中使用,例如:你可以使用如下语法启动数据库的作者和书籍。这可以让你证明一个作者可以有很多书。这告诉books.author_id
(定义几行了)分贝引用author.id
CREATE TABLE 'author' (
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
firstname varchar(255)
lastname varchar(255)
);
CREATE TABLE 'books' (
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
author_id INTEGER,
title varchar(255),
published date,
FOREIGN KEY(author_id) REFERENCES author(id)
);
也许你正在使用的术语“参考键”有点松散?
一行中的外键值被称为“引用”包含相应键值的行。请注意,前面句子中的“reference”一词是一个动词,所以我们可以说我们有一个引用的外键值和一个引用的键值。
虽然它是被引用的关键值而不是表键约束,但我可以松散地说,我们可以说“引用键”是指构成可能被引用的值的行。然后我会看到“引用键”可能会成为“引用键”,但不会相信它的起源。
我假设你正在谈论使用,在不使用的FOREIGN KEY
关键字REFERENCES
,例如。
author_id INTEGER REFERENCES author(id)
...而不是...
author_id INTEGER,
FOREIGN KEY(author_id) REFERENCES author(id)
答案是,这仅仅是同一事物的简写语法。当两者之间发生变化时,主要关心的应该是可读性。
外键“引用”某个其他表中的键。其他表中的该键称为引用键。如果您在phpmyadmin上使用图形功能,您可能会听到很多关于此的信息。
有2种方式申报的外键(S):
如果外键是一个属性:
参考()如果外键的列表属性
外键()参考文献
两个关键字“FOREIGN KEY”和“REFERENCES”关键字之间唯一且最重要的区别是虽然它们都使数据成为父表的子数据,但“FOREIGN KEY”用于创建表级约束,而REFERENCES关键字只能用于创建列级约束。列级约束只能在创建表时创建。但是可以使用ALTER TABLE命令添加表级约束。
外键必须表示主键。 简单地使用REFERENCES约束时,引用的键不一定是主键。
- 1. 检查和外键有什么区别?
- 2. cassandra中的行键,主键和索引有什么区别?
- 3. 主键和身份有什么区别?
- 4. 只有主键和主键约束有什么区别?
- 5. 主键和聚集索引有什么区别?
- 6. 键盘加速器和快捷键有什么区别?
- 7. 主键和代理键有什么区别?
- 8. 候选键和复合键有什么区别?
- 9. 单键和键路径有什么区别?
- 10. 指定json的键有没有引号有什么区别?
- 11. `overload`关键字有什么区别吗?
- 12. 使用索引查询时1复合索引键和单独索引键有什么区别
- 13. 主键,唯一键和外键约束以及索引之间的区别是什么?
- 14. 对象和引用有什么区别?
- 15. __weak和__block引用有什么区别?
- 16. 约束符号与外键索引名称 - >有什么区别?
- 17. 要解除键盘使用`resignFirstResponder`和`endEditing`有什么区别?
- 18. 使用box关键字和Box :: new之间有什么区别?
- 19. 使用synchronized关键字和锁之间有什么区别
- 20. Rails中外键约束和引用之间的区别
- 21. dict.keys()中的关键字与关键字有什么区别?
- 22. 实体框架中的逆向属性和外键有什么区别?
- 23. 外键级联选项和创建触发器有什么区别?
- 24. 传递引用和引用引用有什么区别?
- 25. 在Google App Engine中,实体键和键名称有什么区别?
- 26. oracle sql中的join关键字和inner join关键字有什么区别?
- 27. 散列和索引有什么区别?
- 28. 索引和分片有什么区别
- 29. “throw”关键字和“Write-Error-ErrorAction Stop”之间有什么区别?
- 30. C#中的覆盖和新关键字有什么区别?
虽然第一个将不启用外键,第二个不会启用。第二种方式不再使用了吗? – schwiz 2014-10-13 22:38:41
如果您尝试使用逆向工程从MySQL Workbench中的数据库创建图表,这也很重要。如果您在创建数据库时使用了fir选项,该工具将无法在图元素之间创建连接。 – 2016-12-14 10:59:39