在 redshift 中指定数据库中的表

Posted

技术标签:

【中文标题】在 redshift 中指定数据库中的表【英文标题】:specify a table in a database in redshift 【发布时间】:2016-11-21 20:52:04 【问题描述】:

对 Redshift 非常陌生,目前正在对 Redshift 进行微基准测试,与内部旧数据库“mysql”相比。

在 Redshift 中我们是否可以?

在 MySQL 中:

CREATE DATABASE database_name;

CREATE TABLE database_name.table_name (blah blah);

SELECT * FROM database_name.table_name;

在 Redshift 中它会失败:

[Amazon](500310) Invalid operation: schema "database_name" does not exist; 

有哪位大师能开导吗?

谢谢!

【问题讨论】:

Redshift 不是 mysql。 【参考方案1】:

根据手册,每个数据库都有一个默认模式,名称为PUBLIC。创建表时需要限定模式名称。

请参阅以下手册页:

Schemas 和 CREATE SCHEMA 和 CREATE TABLE 和 CREATE DATABASE

【讨论】:

正确。当您连接到 Redshift 中的 DATABASE 时,您就在 in 该数据库中。您不能引用其他数据库。相反,有一个额外的schema 层,可以区分用户之间的表。

以上是关于在 redshift 中指定数据库中的表的主要内容,如果未能解决你的问题,请参考以下文章

RedShift Copy - 列数不匹配 - 可以在卸载中指定吗?

如何在mysql中定时清除所有库中指定的表中的数据,而不用每个库都写一遍定时任务,求大神指点!!!

删除具有在 postgreSQL 中指定的模式的表列表

在 Liquibase 中指定不同的“TAG”列名

如何通过java程序查询出来与数据库中指定的表相关联的表呢?

使用嵌入式SQL对学生-课程数据库中的表完成下述功能