【问题标题】:How to run transactional SQL on Redshift using boto3如何使用 boto3 在 Redshift 上运行事务性 SQL
【发布时间】:2023-01-21 15:32:26
【问题描述】:

我正在尝试使用 boto3 redshift-data 客户端通过以下语句为外部表(Redshift 频谱)执行事务性 SQL,

ALTER TABLE schema.table ADD IF NOT EXISTS
PARTITION(key=value)
LOCATION 's3://bucket/prefix';

使用execute_statement 提交后,我收到错误“ALTER EXTERNAL TABLE 无法在事务块内运行”.

我尝试在声明之前使用VACUUMCOMMIT命令,但它只会提到VACUUMCOMMIT不能在事务块内运行。

我怎样才能成功执行这样的声明?

【问题讨论】:

    标签: amazon-redshift amazon-redshift-spectrum


    【解决方案1】:

    这与您的工作台设置有关。您在运行的每条语句的开头都有一个未结交易。只需添加“结束;”在需要在事务之外运行的语句之前,事情应该可以工作。只需确保您在工作台上同时启动这两个命令即可。

    像这样:

    END; VACUUM;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-03
      • 1970-01-01
      • 2021-02-03
      • 2019-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多