在 AWS Redshift、sql 工作台中手动将数据插入表中
Posted
技术标签:
【中文标题】在 AWS Redshift、sql 工作台中手动将数据插入表中【英文标题】:Inserting Data manually into table in AWS Redshift, sql workbench 【发布时间】:2018-01-17 07:16:29 【问题描述】:我能够从 SQL 工作台连接到 redshift,并且能够创建一个表,但是当我尝试将值插入表中时,它会抛出以下错误。
由于我使用的是临时架构并且连接将架构显示为公共的,即使我的插入语句是,这仍然是一个问题 插入 tempschema.temp_staging 值
【问题讨论】:
【参考方案1】:Postgres(以及基于旧版 Postgres 的 Redshift)有一个非常严格的事务概念:要么所有语句都有效,要么没有。
只要事务中的一条语句失败,就需要回滚整个事务。
因此,您只需发出ROLLBACK
命令即可继续。无需重启 SQL Workbench/J。
如果您不想对每个引发错误的语句都这样做,只需在连接配置文件中启用自动提交:
7.3.5。自动提交
此复选框启用/禁用连接的“自动提交”属性。如果启用了自动提交,那么每个 SQL 语句都会在 DBMS 上自动提交。如果禁用此功能,则必须提交任何 DML 语句(UPDATE、INSERT、DELETE...)以使更改永久化。一些 DBMS 也需要提交 DDL 语句(CREATE TABLE,...)。请参阅您的 DBMS 的文档。
Link to manual
我是 SQL Workbench/J 支持的一员
【讨论】:
@Adriaan 我不是垃圾邮件。我只是链接到手册来解释如何启用该选项。但如果这让您满意,我可以删除手册的链接。我只是想提供帮助 链接可以保留,但理想情况下它们对答案不是必需的。这是为了防止链接失效(即:如果链接发生变化,答案仍然相关)。然后您还需要披露您是链接背后组织的一部分(如果您是)。我已经编辑了您的答案以包含所有这些,因此您可以看到 SO 之后的内容。感谢您的贡献!【参考方案2】:这只是一个临时获得的锁。
-
断开工作台与数据源的连接
重启工作台
重新连接到您的数据源。
您可以从这里继续。
【讨论】:
以上是关于在 AWS Redshift、sql 工作台中手动将数据插入表中的主要内容,如果未能解决你的问题,请参考以下文章
AWS Redshift CTAS 查询在集群查询选项卡中完成,但仍从客户端 sql 工作台/j 运行。该表也未创建
如何从 SQL 脚本执行 AWS S3 到 Redshift Copy 命令?
如何使用 AWS Redshift Data API 使用 Java 执行 SQL? [关闭]