如何在vertica上创建一个表,以保持数据的完整历史记录更改,主要是更新行

问题描述 投票:0回答:1

我必须创建一个具有主键的表,但名称会随时间而变化,并希望保留更改的历史记录,这是在Vertica上执行此操作的方法吗?

我是Vertica的新手,如果你能给我解释好的话会很好。

vertica
1个回答
0
投票

很确定没有专门跟踪它的系统表,但你可以通过查询v_monitor.query_requests并查找以UPDATE开头的请求来获得你想要的东西。

SELECT *
FROM v_monitor.query_requests
WHERE request ILIKE 'UPDATE%';

ILIKE是一个不区分大小写的LIKE声明。

如果您想要更精确的查找更新方式,可以使用查询标签执行更新:/*+LABEL('update')*/

UPDATE /*+LABEL('update')*/ table
SET col1 = col1 + 1;

您也可以类似地标记其他查询,INSERT /*+LABEL('insert') INTO table ...

然后,您可以查询query_requests表,搜索这些特定标签。

SELECT *
FROM v_monitor.query_requests
WHERE request_label = 'update';

更新:

从9.2开始,有一个名为LOG_QUERIES的新系统表,它跟踪一些DDL变化,如CREATEALTERTRUNCATE等。不幸的是 - 从我的测试 - 看起来它不跟踪更新,所以它可能没有帮助如果您想在将来跟踪CREATEALTER语句,那么它可能会很有用。如果您有高级支持,您也可以要求在此表中包含UPDATE语句。

© www.soinside.com 2019 - 2024. All rights reserved.