【发布时间】:2015-10-30 15:55:24
【问题描述】:
我有一个表,其中有一个名为“source”和“id”的列。该表是从开放数据数据库中填充的。 “id”不能是唯一的,因为我的数据来自其他具有自己的 id 系统的数据库。拥有相同的 id 但真正不同的数据确实存在风险。
我想创建另一列将源和 id 组合成一个值。
"openDataA" + 123456789 -> "openDataA123456789"
"openDataB" + 123456789 -> "openDataB123456789"
我见过使用 || 的例子和连接值的功能。这很好,但我想让这第三列成为我的主键,以避免重复,并创建一个真正唯一的 id,我可以在没有太多计算的情况下进行查询,并且可以将其用作其他表的外键约束。
我认为复合类型是我正在寻找的,但不是每次手动设置值,我想通过仅设置“源”和“id”来自动获取它们
我对 postgresql 还很陌生,所以欢迎任何帮助。 谢谢。
【问题讨论】:
标签: postgresql primary-key ddl primary-key-design