在Postgres中没有主表的主键有什么缺点吗?由于所有数据都是无序存储在堆中的,因此主键只是同时强制执行唯一键和索引的一种方式?还是有一个基本功能,主键提供在一个表中,而不是一个没有主键的表?Postgres没有主键缺点
回答
每Postgres的文档(http://www.postgresql.org/docs/9.2/static/sql-createtable.html):
从技术上讲,PRIMARY KEY只是UNIQUE和NOT的组合NULL,但将一组列作为主键标识还提供关于模式设计的元数据,因为主键意味着其他表可以依赖这组列作为行的唯一标识符 。
从经验来看,我创造了许多没有它们的表格。没有主键的最大缺点之一是你不能通过外键进行参照完整性检查 - 因为这种关系需要一个。我认为一些复制解决方案还需要有一个主键,或者每行的单列标识符。
啊,关于复制问题的好处。这完全滑了我的脑海。虽然我在每一行中都有一个唯一的UUID,但我应该确保没有PK不会成为复制问题(没有外键,因此这不是问题)。谢谢。 – AlexGad
另一个令人难以置信的问题是大多数ORM(例如Django)在处理没有主键的表时遇到问题。所以,如果需要在桌面上放置一个UI,那么对于任何正在工作的人来说,它可能会让生活变得更加困难。这不是什么大问题,但可能是一个考虑因素(取决于公司/团队内的数据和发生的情况)。 –
外键约束要求在目标列上有一个'UNIQUE'索引。不一定是主键。 –
- 1. 在Postgres的一些主键缺少
- 2. Postgres主键Synchornized
- 3. 具有复合主键的优点和缺点...
- 4. Postgres的表没有设置自动增量的主键
- 5. Symfony有没有缺点?
- 6. 表没有主键
- 7. 甲骨文批插入瓦特/没有主键缺失插入
- 8. 外键和主键Postgres和索引
- 9. 有没有像主键和辅助键?
- 10. 当主键没有主键时,mysql主键重复输入
- 11. 将外键绑定到非主键时是否有任何缺点?
- 12. 没有主键的sqlite?
- 13. SQLite:主键没有显示
- 14. 没有主键的表格
- 15. 表没有主键c#
- 16. 没有主键的Slickgrid/Dataview
- 17. 表没有主键(MissingPrimaryKeyException)
- 18. 没有主键休眠
- 19. 的MySQL没有主键
- 20. 没有主键的Rails表
- 21. NHibernate SaveOrUpdate没有主键
- 22. LINQ DeleteOnSubmit没有主键
- 23. 依赖于rowid而不是_id主键(SQLite)的优点/缺点
- 24. 对集群表主键使用int或newsequentialid有什么优点/缺点?
- 25. 表结构(缺少主键)
- 26. 节点Postgres模块没有响应
- 27. 外键没有主键要参考
- 28. 没有主键或代理键?
- 29. Postgres的 - 没有
- 30. 链接setter:有没有缺点?
如何处理更新表中没有主键的记录? – Olaf
不需要检索单个行,从不更新行,只插入。尽管这些行具有单独的身份(UUID),但它们只能在范围内抓取。我在范围上有索引,但如果可以避免的话,在唯一键上有一个索引没有意义。 – AlexGad
我在问具体问题,因为我来自SQL Server后台并决定是在表上还是在堆表上使用聚簇索引,这是做出重要决定。对Postgres来说,这个决定似乎没有意义,因为数据总是无序地存储在表中以开始。但是,我想确保在这个假设中我是正确的。在Postgres vs中PK有什么好处,说一个独特的约束和一个单独的索引?有没有区别,或只是提供这些功能的简便方法? – AlexGad