在Amazon Redshift上插入行的事务的ID

时间:2016-09-28 22:56:38

标签: postgresql amazon-redshift

我需要知道插入行的事务的ID。

在香草上,我可以做到:

SELECT xmin from <table>

但是在Redshift上给出了:

ERROR: column xmin does not exist in <table>

有没有办法得到我需要的东西?

1 个答案:

答案 0 :(得分:0)

由于Redshift默认情况下没有自动增加的列,我会说用一个额外的列重新创建该表。该新列应该是IDENTITY列。您不应在该列中插入任何内容。每次插入行时,它将以增量方式自动填充。它对于每一行都是唯一的,因此您可以将该列用作row_id。

以下是您的DDL应该如何:

CREATE TABLE <schema>.<table_name>
(
    row_id BIGINT IDENTITY (0,1),
    ....
)

现在将旧表中的行插入此行。同样,不要为row_id列分配任何值。 (它会给你一个错误)你会看到它是自动填充的。