TableName和PrimaryKey作为表列

时间:2016-10-01 10:28:16

标签: postgresql

我想为每个行记录实现唯一标识符。 标识符在所有表中都应该是唯一的。

因此,我想将TableName和PrimaryKey的组合用作我的标识符。

例如,我有表格联系人:

CREATE TABLE Contacts
(
  ContactId                SERIAL,
  FirstName                text,                   
  LastName                 text,
  RowId                    text,         

  PRIMARY KEY (ContactId)
);

示例数据将是:

ContactId: 1
FirstName: John
LastName: Doe
RowId: Contacts1

ContactId: 1001
FirstName: Jane
LastName: Doe
RowId: Contacts1001

实现这一目标的最佳方法是什么?

我在考虑一个插入/更新触发器来处理RowId列。我估计TG_TABLE_NAME + ContactId会适用于这种情况。

但是我也想阻止直接更新RowId列。

我还在考虑使用oid和tableoid作为标识符,但文档说:

  

在用户表中使用OID被认为已弃用,因此大多数情况下都是如此   安装应该禁用此变量

那你们觉得怎么样?

0 个答案:

没有答案