访问表中的主键是不是会更改

Posted

技术标签:

【中文标题】访问表中的主键是不是会更改【英文标题】:Does the Primary Key in an Access Table ever change访问表中的主键是否会更改 【发布时间】:2015-11-03 15:47:43 【问题描述】:

我目前正在处理一个 MS Access 项目(Office 2013,.accdb 格式)。我有一个包含字段列表的表格。有时我想从该表中导出数据并使用主键命名导出。我大致了解主键的工作原理,并且它们永远不应该改变。

我想知道的是他们是否会改变(没有用户明确改变他们)例如执行压缩和修复时,现有记录的 PK 是否可能更改?

【问题讨论】:

【参考方案1】:

不,主键永远不会自行更改。当然,您也不应该更改它们,因为通常选择它们是因为它们具有唯一性,并且大多数表不会有多个包含完全唯一值的字段。

这并不是说主键不能手动更改,但可能不应该这样做。它的主要目的是与其他表进行连接,并在自己的表中进行搜索,效率更高。因此,除非最重要和最独特的字段发生变化,否则永远不要更改它。

【讨论】:

【参考方案2】:

数据库不会自行更改存储在主键列中的值。主键应该是三样东西:非 NULL、唯一和不变。数据库软件不会为您强制执行任何、部分或所有这些要求,但据我所知,没有数据库会在没有明确指示的情况下更改主键字段的值(例如通过用户提供的 UPDATE 语句)。

祝你好运。

【讨论】:

以上是关于访问表中的主键是不是会更改的主要内容,如果未能解决你的问题,请参考以下文章

无法通过视图访问组合键表,以便在该表中输入数据或分配正确的主键?

一个表中的主键是不是也可以作为主键出现在另一个表中?

访问表单无法传递视图的主键(到 SQL 服务器)

SQLite 中的主键是不是需要索引?

SQLite 中的主键是不是需要索引?

数据库索引