我能够从 SQL 工作台连接到 redshift,并且能够创建一个表,但是当我尝试将值插入到表中时,它会抛出以下错误。
由于我使用的是临时模式并且连接将模式显示为公共的,即使我的插入语句是插入到 tempschema.temp_staging 值中,这仍然是一个问题吗
我能够从 SQL 工作台连接到 redshift,并且能够创建一个表,但是当我尝试将值插入到表中时,它会抛出以下错误。
由于我使用的是临时模式并且连接将模式显示为公共的,即使我的插入语句是插入到 tempschema.temp_staging 值中,这仍然是一个问题吗
Postgres(以及基于旧版 Postgres 的 Redshift)有一个非常严格的事务概念:要么所有语句都有效,要么没有。
一旦事务中的一条语句失败,就需要回滚整个事务。
所以你需要做的就是发出一个ROLLBACK
命令,然后你就可以继续了。无需重新启动 SQL Workbench/J。
如果您不想对每个引发错误的语句都这样做,只需在连接配置文件中启用自动提交:
7.3.5。自动提交
此复选框启用/禁用连接的“自动提交”属性。如果启用了自动提交,那么每个 SQL 语句都会在 DBMS 上自动提交。如果禁用此功能,则必须提交任何 DML 语句(UPDATE、INSERT、DELETE...)以使更改永久化。一些 DBMS 也需要提交 DDL 语句(CREATE TABLE,...)。请参阅您的 DBMS 的文档。
我是 SQL Workbench/J 支持的一部分
这只是一个临时获得的锁。
您将能够从这里恢复。