Используйте эту форму:
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;"
Теперь новая таблица имеет ту же структуру и атрибуты, что и оригинал.