首页 > 解决方案 > BigQuery 等效于“CREATE TABLE my_table (LIKE your_table)”

问题描述

我想创建一个架构与另一个表完全相同的表。在其他 SQL 引擎中,我认为我能够使用“CREATE TABLE my_table ( LIKE your_table)”或一些变体。

我在 BigQuery 中找不到等价物。这可能以某种方式实现吗?

标签: google-bigquery

解决方案


使用此表格:

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;"

现在新表具有与原始表相同的结构和属性。


推荐阅读