Изменение порядка столбцов в таблице

# #google-bigquery

Вопрос:

У меня есть большая таблица запросов со схемой в виде :

 CREATE TABLE `abc`
(
col2 STRING,
col1 DATE,
col3 STRING,
);
 

и после создания и загрузки в него данных на несколько месяцев я понял, что хочу, чтобы DDL выглядел так,

 CREATE TABLE `abc`
(
col1 DATE,
col2 STRING,
col3 STRING,
);
 

Я хочу этого изменения, потому что вышестоящий код ETL ожидает его таким образом.

Есть ли способ достичь этого?

PS: удалить и создать таблицу невозможно, так как в ней есть важные данные.

Спасибо 🙂

Ответ №1:

Вы не пропустите ни одной информации. Попробуй это.

 create or replace table <SCHEMA.NEW_TABLE_NAME> as 
select col1,col2,col3  from <SCHEMA.OLD_TABLE_NAME>;
 

Ответ №2:

Когда вы сделаете выбор, вы сможете передать порядок, который вы хотите для своих столбцов.

Вместо того, чтобы выбрать его как SELECT * FROM ...

просто сделайте это так, как SELECT col1, col2, col3 FROM ...