如何在Teradata中使用SELECT语句在数据库之间传输数据

时间:2013-02-13 00:25:16

标签: sql teradata

所以我坚持这个Teradata问题,我正在向社区寻求建议,因为我是TD平台的新手。我目前正在使用Teradata数据仓库,并有一个有趣的任务要解决。目前,我们将信息存储在实时生产数据库中,但希望在使用FastExport导出文件之前在另一个数据库中暂存表。基本上我们希望将表格移动到数据库中以快速拍摄。

我一直在探索不同的解决方案,我不确定如何继续。我需要能够从Teradata中的一个DB自动化创建表进程到另一个。棘手的部分是我想使用WHERE子句从源表创建许多表。例如,我有一个事务表,并希望逐月拍摄特定日期范围的事务表的快照。这意味着原始表Transaction将被分成许多表,例如Transaction_May2001,Transaction_June2001,Transaction_July2001等等。

谢谢

1 个答案:

答案 0 :(得分:2)

这是由两个数据库假设您指的是Teradata的相同物理安装。

您可以使用CREATE TABLE AS构造来完成此任务:

CREATE TABLE {MyDB}.Transaction_May2001
AS (
SELECT *
FROM Transaction
WHERE Transaction_Date BETWEEN DATE '2001-05-01' AND '2001-05-31'
)
{UNIQUE} PRIMARY INDEX ({Same PI definition as Transaction Table}) 
WITH DATA AND STATS;

如果您忽略在CREATE TABLE AS中指定显式PI,则Teradata将采用SELECT子句的第一列并将其用作新表的PI。

否则,您可能会在评论问题中使用ryanbwork建议的Teradata实用程序。