簡體   English   中英

在 BigQuery 中刪除另一列后無法添加列

[英]Cannot add a column after deleting another column in BigQuery

我無法想象 BigQuery 中存在這樣的問題:
比如說,如果我在 BQ 控制台中使用以下命令刪除用戶表的列:
Alter table User drop column name -> 成功

我知道此列保留 7 天(出於時間旅行持續時間的目的)。

但是我不能再通過在 BQ 控制台中運行以下命令來添加任何列:
ALTER TABLE User add column first_name STRING

因為即使兩列的命名完全不同,它也會給出如下錯誤:
Column name was recently deleted in the table User. Deleted column name is reserved for up to the time travel duration, use a different column name instead.

上述錯誤與我嘗試再次刪除同一列時相同,即使使用 IF EXISTS: Alter table User drop IF EXISTS column name

我的問題:

  • 為什么會出現這個問題? 7 天后,我可以像往常一樣添加新列嗎?

我重新創建了您的問題,其中我刪除了一個名為employee_like_2的列,然后嘗試添加一個名為new_column的新列。

在此處輸入圖像描述

已經為這個問題創建了一個錯誤 您可以點擊+1以引起對該問題的更多關注並為該問題加注星標,以便您收到更新通知。

與此同時,一種可能的解決方法是通過BigQuery UI手動添加列。

在此處輸入圖像描述 在此處輸入圖像描述

除了使用 UI 建議的@Scott B 的解決方案外,我們還可以使用 bq 命令:

基本上bq query --use_legacy_sql=false 'ALTER TABLE User add column first_name STRING'將無法添加列。 但我找到了一種解決方法,我可以運行 bq update 命令,如下所示:

  1. bq show --schema --format=prettyjson DATASET.User > user_schema.json
  2. 將我想要的新列添加到文件 user_schema.json
  3. bp 更新 DATASET.User user_schema.json

所以這基本上意味着它是 BigQuery SQL 命令中的 100% 錯誤

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM