Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 红移表创建不持久/持久_Sql_Amazon Redshift_Sql Workbench J - Fatal编程技术网

Sql 红移表创建不持久/持久

Sql 红移表创建不持久/持久,sql,amazon-redshift,sql-workbench-j,Sql,Amazon Redshift,Sql Workbench J,我正在使用SqlWorkbenchJ连接到我的红移群集并创建一个表: CREATE TABLE mydb_dev.Widget ( fizz BIGINT, buzz BIGINT, lastRanOn timestamp with time zone NOT NULL DEFAULT (current_timestamp AT TIME ZONE 'UTC') ); select * from mydb_dev.Widget; 当我运行上面的SELECT语句时,它显示一个空

我正在使用SqlWorkbenchJ连接到我的红移群集并创建一个表:

CREATE TABLE mydb_dev.Widget (
  fizz BIGINT,
  buzz BIGINT,
  lastRanOn timestamp with time zone NOT NULL DEFAULT (current_timestamp AT TIME ZONE 'UTC')
);  

select * from mydb_dev.Widget;
当我运行上面的SELECT语句时,它显示一个空表。到目前为止还不错

但是如果我断开连接,然后重新连接到群集,然后再次运行相同的精确选择,我会得到:

An error occurred when executing the SQL command:
select * from mydb_dev.Widget

[Amazon](500310) Invalid operation: relation "mydb_dev.Widget" does not exist;
1 statement failed.

Execution time: 0.06s

所以看起来表创建的连接不持久或无法持久保持当前连接…这里的修复方法是什么

在SQL Workbench中,创建新文件时自动提交的默认设置为“关闭”。因此,当您创建新连接且不更改任何内容时,自动提交将被禁用,您需要提交每个事务

或者,可以通过执行以下命令以交互方式关闭/打开自动提交:

SET autocommit ON/OFF
创建表后,您需要提交它,否则,当当前会话结束时,所创建的表将被删除

创建表后执行
COMMIT

CREATE TABLE mydb_dev.Widget (
  fizz BIGINT,
  buzz BIGINT,
  lastRanOn timestamp with time zone NOT NULL DEFAULT (current_timestamp AT TIME ZONE 'UTC')
);  
COMMIT;

在SQL Workbench中,创建新文件时自动提交的默认设置为“关闭”。因此,当您创建新连接且不更改任何内容时,自动提交将被禁用,您需要提交每个事务

或者,可以通过执行以下命令以交互方式关闭/打开自动提交:

SET autocommit ON/OFF
创建表后,您需要提交它,否则,当当前会话结束时,所创建的表将被删除

创建表后执行
COMMIT

CREATE TABLE mydb_dev.Widget (
  fizz BIGINT,
  buzz BIGINT,
  lastRanOn timestamp with time zone NOT NULL DEFAULT (current_timestamp AT TIME ZONE 'UTC')
);  
COMMIT;

这是相当可信的。但文档中明确指出:“默认情况下,单个Amazon红移操作(查询、DDL语句、加载)会自动提交到数据库。”()也许该工具正在事务内部执行此操作?是的,
sqlworkbenchj
会这样做,而且(至少)早期版本的
postico
也会这样做,例如,禁用自动提交,我相信其他客户端也会这样做,公平地说,这样做似乎是明智的@GordonLinoff@HaleemurAli . . . 您应该在回答中提到sqlworkbenchj关闭自动提交。这才是真正的问题,这是非常可信的。但文档中明确指出:“默认情况下,单个Amazon红移操作(查询、DDL语句、加载)会自动提交到数据库。”()也许该工具正在事务内部执行此操作?是的,
sqlworkbenchj
会这样做,而且(至少)早期版本的
postico
也会这样做,例如,禁用自动提交,我相信其他客户端也会这样做,公平地说,这样做似乎是明智的@GordonLinoff@HaleemurAli . . . 您应该在回答中提到sqlworkbenchj关闭自动提交。这才是真正的问题所在。