将 table 中的列类型从布尔值更新为字符串

Update column type in a table from Boolean to string

我想在大查询中将一个空列从布尔类型更新为字符串。 我怎样才能在不覆盖 table 并加载所有数据的情况下做到这一点?

谢谢!

您只能在 table 的末尾添加新字段。在旧列上,您可以选择将 required 更改为 nullable。所以你想要的是不可能的,只有当你添加一个新字段,或者正如你所说的完全覆盖 table.

有两个table操作Update and Patch

您需要使用 更新 命令,将新列添加到您的架构中。

重要的旁注:

  1. 顺序很重要。如果您更改顺序,它将看起来像一个不兼容的模式。
  2. 您只能在 table 的末尾添加新字段。在旧列上,您可以选择将 required 更改为 nullable。
  3. 您不能将必填字段添加到现有架构。
  4. 您无法删除旧字段,一旦指定了 table 的架构,您就无法更改它,除非先删除与其关联的所有数据。如果要更改 table 的架构,则必须指定 WRITE_TRUNCATE 的 writeDisposition。有关详细信息,请参阅工作资源。

Here is an example of a curl session that adds fields to a schema. It should be relatively easy to adapt to Java. It uses auth.py from here

使用 Table.Update() 时,您必须再次包含完整的 table 架构。如果您不提供完全匹配的架构,您可以获得:Provided Schema does not match Table。例如,我没有注意细节,在我的一次更新调用中,我没有包含像 created 这样的旧字段,结果失败了。