我目前正在开发MS Access项目(Office 2013,.accdb格式)。我有一个包含字段列表的表。有时我想从该表导出数据并使用主键命名导出。我通常了解主键如何工作,并且它们不应该改变。
我想知道的是,如果他们做过更改(没有用户明确更改它们),例如在执行Compact& amp;修复现有记录的PK可能会发生变化吗?
答案 0 :(得分:1)
不,主键永远不会改变。你也不应该改变它们,因为它们通常是因为它们具有独特性而被选择的,并且大多数表格不会包含多个包含完全唯一值的字段。
这并不是说主键无法手动更改,但可能不应该。它的主要目的是与其他表进行连接,并在自己的表中进行搜索,效率更高。所以,除非最重要和最独特的领域发生变化,否则你永远不应该改变它。
答案 1 :(得分:1)
数据库本身不会更改存储在主键列中的值。主键应该是三件事:非NULL,唯一和不变。数据库软件将不会强制执行这些要求中的任何一部分,部分或全部,但是我所知道的数据库在没有明确指示的情况下将更改主键字段的值(例如,通过用户提供的UPDATE语句)。
祝你好运。