在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。
答案 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
中,我只有copied
和pasted
这个问题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
希望有帮助,如果您需要更多信息,请更新问题。