我必须创建一个具有主键的表,但是名称会更改,例如时间,并希望保留更改的历史记录,这是在Vertica上执行此操作的一种方法吗?
我是vertica的新手,如果您能对我很好地解释,那就太好了。
答案 0 :(得分: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更改,例如CREATE
,ALTER
,TRUNCATE
等。我的测试-它看起来好像无法跟踪更新,因此可能无法解决您的确切问题,但是如果您想跟踪列表中的CREATE
或ALTER
语句,则可能很有用。未来。如果您有高级支持,则可以要求它们在此表中也包含UPDATE
语句。