google-bigquery - BigQuery 等效于“CREATE TABLE my_table (LIKE your_table)”
问题描述
我想创建一个架构与另一个表完全相同的表。在其他 SQL 引擎中,我认为我能够使用“CREATE TABLE my_table ( LIKE your_table)”或一些变体。
我在 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;"
现在新表具有与原始表相同的结构和属性。
推荐阅读
- c - 函数调用后结构指针值不变
- laravel - 如何将“127.0.0.1:8000 / localhost:8000”更改为我想要的网址。(拉拉维尔)
- django - Django rest-auth 令牌认证
- .net - asp.net core 2.1 中的 SharedResource 本地化和简单注入器
- javascript - 构建静态 HTML - WebpackError: Invariant Violation: Minified React error #152
- css - 为什么“index_”前缀添加到 webpack 导入的 CSS 中的类和 id 选择器
- rust - 在 Rust 中展平自定义结构的 vec 的 vec
- python - Pandas DF 往返 MySQL
- python - Python Pandas:平均分配字符串列
- php - 根据帖子标题关键字自动将帖子分配给类别