如何从 select 语句中按 id 取消多个排队查询?

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

我有多个排队查询,我想取消所有这些查询。查询具有不同的会话 ID,因此我无法使用

SYSTEM$CANCEL_ALL_QUERIES

我可以通过以下查询获取 id 列表

SELECT query_id
FROM table(snowflake.information_schema.query_history())
WHERE execution_status = 'QUEUED'
AND start_time < DATEADD('minute', -10, CURRENT_TIMESTAMP())
AND start_time > DATEADD('hour', -1, CURRENT_TIMESTAMP());

我能够像这样取消单个查询:

SELECT SYSTEM$CANCEL_QUERY('01b74954-020a-94f6-0004-7b6b0022e5da');

但是,我没有找到一种方法来动态取消之前 select 语句中的所有查询。我尝试使用 Snowflake 脚本创建 while 或 for 循环,但没有成功。

sql snowflake-cloud-data-platform cancellation
1个回答
0
投票

您可以将它们组合在一起,如下所示:

SELECT SYSTEM$CANCEL_QUERY(query_id)
FROM table(snowflake.information_schema.query_history())
WHERE execution_status = 'QUEUED'
AND start_time < DATEADD('minute', -10, CURRENT_TIMESTAMP())
AND start_time > DATEADD('hour', -1, CURRENT_TIMESTAMP());
© www.soinside.com 2019 - 2024. All rights reserved.