ajs*_*sie 1 mysql sql database
我不明白一件事.为什么我必须使用外键链接到另一个表中的主键?
当我查询时,我键入"where table1.foreignkeycolumn = table2.primarykeycolumn".
如果我没有为primarykey分配外键,这不起作用吗?
没有外键它工作正常.你不会需要一个外键/主键关系JOIN在查询表.
主键和外键的目的是指示数据库引擎本身执行以下测试,并拒绝未通过这些测试的数据:
对于声明为主键的列,每行必须具有非NULL值,并且该值在表中的所有行中必须是唯一的.(如果声明多个列共同构成主键,则所有列必须包含非NULL值,并且值的组合在所有行中必须唯一).
对于声明为外键的列,如果为行指定了值(如果未另行指定,外键列可以包含NULL值),则该值必须存在于链接的主键列中.
对于声明为主键的列,如果尝试删除行或更改主键值,则链接到该主键的外键列不得包含该值.
它有点复杂(例如,通过将更改级联到外键表来处理主键更新的方法),但这就是要点.PK/FK可以让数据库为您进行一些完整性检查,并保证关系始终有效.
| 归档时间: |
|
| 查看次数: |
2711 次 |
| 最近记录: |