BigQuery эквивалент "CREATE TABLE my_table (LIKE your_table)" - PullRequest
0 голосов
/ 13 сентября 2018

Я хочу создать таблицу, схема которой точно совпадает с другой таблицей.В других механизмах SQL, я думаю, я мог использовать «CREATE TABLE my_table ( LIKE your_table)» или некоторые варианты.

Я еще не смог найти эквивалент в BigQuery.Это возможно каким-то образом?

1 Ответ

0 голосов
/ 13 сентября 2018

Используйте эту форму:

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

Теперь новая таблица имеет ту же структуру и атрибуты, что и оригинал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...