一次创建多个表

时间:2019-09-24 03:40:49

标签: sql amazon-redshift

在redshift在线查询编辑器中运行多个'/cloudsql/my-awesome-project:us-central1:mysqlinst1' 语句,每个语句均以';'结尾结果仅创建一个表。

我查看了堆栈溢出的各种帖子,其中在其他平台上创建了多个表。例如mysql,这里是How to convert columns into one datetime column in pandas?。但是,我无法找到有效的redshift示例。我还尝试删除了最后一个';'导致只创建了第一个表。

gcloud sql instances describe <instance_name> | grep connectionName

没有错误代码,但仅创建了test_two。

3 个答案:

答案 0 :(得分:1)

这在Redshift上肯定有效。如果您使用Python和Psycopg2执行这些查询,请确保在每个查询后都使用分号;,并且不要使用任何野分号,因为这样会得到空查询。

此外,请确保在执行查询后您commit建立连接。如果您使用的是DBeaver / PgAdmin之类的SQL客户端,请在执行这些查询后启用自动提交或手动提交。

修改

使用Redshift控制台查询编辑器时,它一次仅执行一个查询(最后一个查询),无论这些查询是DDL查询还是DML查询。 因此,到目前为止,无法创建多个表或将数据插入到多个表中。您可以使用SQL Client来实现。

答案 1 :(得分:1)

Redshift在线查询编辑器不支持多个查询。您必须选择单个查询才能执行。最好使用psql或Aginity for Redshift之类的工具来执行多个查询。

答案 2 :(得分:0)

您尚未提到要使用的工具,因此假设使用psql命令提示符。

my.sql中,我只有copiedpasted这个问题sql。 如果运行以下查询,它将创建两个很好的示例表,而没有任何问题。

psql -h example-url.redshift.amazonaws.com -U user -d example_db -p 5439 -f /home/your/path/to/sql/file/my.sql

输出

CREATE TABLE
CREATE TABLE

希望有帮助,如果您需要更多信息,请更新问题。