【发布时间】:2017-01-04 09:59:44
【问题描述】:
有没有办法计算亚马逊红移中受 SQL 更新查询影响的最后行数?
类似于 PG_LAST_COPY_COUNT() 的函数来计算亚马逊红移中的最后一个复制计数。
感谢任何帮助。
【问题讨论】:
标签: sql amazon-redshift
有没有办法计算亚马逊红移中受 SQL 更新查询影响的最后行数?
类似于 PG_LAST_COPY_COUNT() 的函数来计算亚马逊红移中的最后一个复制计数。
感谢任何帮助。
【问题讨论】:
标签: sql amazon-redshift
这应该提供信息
SELECT CASE
WHEN d.relname IS NOT NULL THEN d.relname
ELSE i.relname
END TableName,
CASE
WHEN nvl (Deleted_Rows,0) = 0 THEN nvl (Inserted_Rows,0)
ELSE 0
END Inserted_Rows,
CASE
WHEN nvl (Deleted_Rows,0) = nvl (Inserted_Rows,0) THEN nvl (Inserted_Rows,0)
ELSE 0
END Updated_Rows,
CASE
WHEN nvl (Inserted_Rows,0) = 0 THEN nvl (Deleted_Rows,0)
ELSE 0
END Deleted_Rows
FROM (SELECT query,
relname,
SUM(ROWS) Deleted_Rows
FROM stl_delete sd
JOIN pg_class t ON t.oid = sd.tbl
GROUP BY query,
relname) d
FULL JOIN (SELECT query,
relname,
SUM(ROWS) Inserted_Rows
FROM stl_insert si
JOIN pg_class t ON t.oid = si.tbl
GROUP BY query,
relname) i ON i.query = d.query
WHERE CASE WHEN d.query IS NOT NULL THEN d.query ELSE i.query END = pg_last_query_id();
【讨论】:
您是对的,没有等效的 PG_LAST_COPY_COUNT() 用于从插入/更新/删除中捕获受影响行的最后数量,但是您可以通过使用系统表 STV_SESSIONS、STL_QUERY 和 @ 来实现这一点987654325@。有一篇很棒的博客文章 here 关于如何构建查询。
希望这会有所帮助!
【讨论】: