我想创建一个表,该表的架构与另一个表完全相同。在其他SQL引擎中,我认为我可以使用“ CREATE TABLE my_table( Like your_table)”或某些变体。
我在BigQuery中找不到等效项。这有可能吗?
答案 0 :(得分:3)
使用此表单:
CREATE TABLE dataset.new_table AS
SELECT *
FROM dataset.existing_table
LIMIT 0
这将创建一个具有与旧表相同模式的新表,并且由于LIMIT 0
而没有成本。
但是请注意,这不会保留分区,表说明等。另一种选择是使用CLI(或API),制作表的副本,然后覆盖其内容,例如:
$ bq cp dataset.existing_table dataset.new_table
$ bq query --use_legacy_sql --replace --destination_table=dataset.new_table \
"SELECT * FROM dataset.new_table LIMIT 0;"
现在,新表具有与原始表相同的结构和属性。
答案 1 :(得分:1)
要创建分区表和/或群集表,语法为:
创建表project.dataset.clustered_table
PARTITION BY DATE(created_time)
聚类
帐户ID
选择时*来自project.dataset.example_table
限制0