1

是否有可能發行在谷歌雲扳手像是否可以重新命名列?

RENAME COLUMN col1 col2 

?從DDL看來,這是不可能的;如果不是,這是Beta中的設計選擇還是限制?

回答

3

不,這是不可能的。目前,你只能做關於變更表中的列如下:

  • 添加一個新的
  • 刪除現有的一個,除非它是一個鍵列
  • 更改刪除行爲(級聯與否)
  • 轉換和BYTESSTRINGBYTES之間STRING
  • 變化長度的
  • 添加或刪除NOT NULL修改

一個解決辦法是可以通過以下順序執行下列步驟:

  • 新列添加到您的表
  • 更新您的代碼從兩列讀
  • 更新你的代碼只寫入新文件
  • 運行Cloud Dataflow作業將數據從舊列遷移到新列
  • 將您的代碼更新爲僅限於來自新列
  • 刪除舊列

記住上面的步驟不會對主鍵列讀取工作,你必須創建一個新表,並做數據遷移做那樣。

+0

丹 - 感謝提示。建議如何運行執行遷移的Cloud Dataflow作業?是否有任何內置的功能允許它從Cloud Spanner獲取/傳輸數據? – user3707

+0

除非你已經有一個大的數據集,只要編寫任何舊的進程來查詢讀取和寫入單個線程中的所有內容就足以完成工作。 –

相關問題