我需要知道插入行的事务的ID。
在vanilla postgres上,我可以这样做:
SELECT xmin from <table>
但在Redshift上,它给出了:
ERROR: column xmin does not exist in <table>
有没有办法得到我需要的东西?
发布于 2017-02-13 10:07:15
由于Redshift默认情况下没有自动递增列,因此我建议使用额外列重新创建表。该新列应该是标识列。您不应该在该列中插入任何内容。它将在您每次插入一行时自动递增填充。它对于每一行都是唯一的,因此您可以将该列用作row_id。
下面是DDL应该是什么样子的:
CREATE TABLE <schema>.<table_name>
(
row_id BIGINT IDENTITY (0,1),
....
)现在将旧表中的行插入到这个表中。再说一次,不要给row_id列赋值。(它将给您一个错误)您将看到它是自动填充的。
https://stackoverflow.com/questions/39758877
复制相似问题