如何在不使用CTAS的情况下创建自定义表?

14
我想创建一个特定列和数据类型的空表,我没有可以执行SELECT * FROM的参考表。以下链接有一张图片,我想要做的是请查看附加的图片

2
这个表格会是空的吗? - dfundako
2
是的,表格将会是空的。@dfundako - Shahrukh lodhi
1
你为什么想通过dbt来做那件事情? - dfundako
Dbt是一个转换工具,它可以使用CTAS创建表,那么为什么不能用简单的命令“create table test”创建呢?我遇到了一个场景,在这个场景中,我想创建一个有10列的表,并在新表中只将值放在其中5列中。@dfundako - Shahrukh lodhi
我知道dbt是什么,但你想要实现的并不是dbt的用途。标准的dbt方法是使用cte从另一个源/模型查询并实现新的视图/表。你正在尝试执行一步来创建一个空表,在dbt中通常不会发生这种情况。你最好使用seed文件,并在yml文件中定义数据类型。 - dfundako
谢谢!我在文档中看到了种子。这意味着我们不能即时创建一个空表。但是我们可以通过使用种子来奠定表的基础。 - Shahrukh lodhi
1个回答

2
您可以使用预挂钩/后挂钩
在预挂钩/后挂钩中,您可以编写创建表查询(或任何其他查询)。
在您的用例中,我会做一些像这样的事情:
{{
   config(
       pre-hook = "create table test (a int)"
   )
}}

select * 
from test

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接