有啥方法可以制作不使用持久 ID 机制的表键?
Posted
技术标签:
【中文标题】有啥方法可以制作不使用持久 ID 机制的表键?【英文标题】:Any way to make a table key that doesn't use the Persistent ID mechanism?有什么方法可以制作不使用持久 ID 机制的表键? 【发布时间】:2012-02-22 19:17:22 【问题描述】:我正在尝试在 yesod 中设置我的 postgres 架构。计划是让 yesod 生成表,但我将从 C++ 程序中的 lua 脚本将新记录插入表中。我希望其中一个表具有基于来自 C++ 环境的唯一 Int64 的主键。我可以让 Persistent 将此列视为表键,但不自动生成 id 吗?
我想我也可以有一个常规的持久式记录 ID 列和一个 Int64 列,但这似乎很浪费而且过于复杂。 Int64 将始终是唯一的,我将使用它来查找表记录以查看它们是否已经存在。
【问题讨论】:
我没有检查,但是如果您将 Persistent 创建的 id 列的类型修改为 Int64 呢? Persistent 迁移后会重新修改类型吗? 【参考方案1】:我认为这个问题是在邮件列表中提出的。简短的回答是否定的,Persistent 中的主键是自增的,但你可以有二级索引
【讨论】:
以上是关于有啥方法可以制作不使用持久 ID 机制的表键?的主要内容,如果未能解决你的问题,请参考以下文章