我想为每个行记录实现唯一标识符。 标识符在所有表中都应该是唯一的。
因此,我想将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被认为已弃用,因此大多数情况下都是如此 安装应该禁用此变量
那你们觉得怎么样?