我正在运行查询以更改列数据类型并选择目标表查询表本身.我选择写优先"覆盖表".表所有列都是REQUIRED,表不为空.但运行查询后,所有列模式都会更改为NULLABLE.我的演员查询如下:
SELECT
CAST(id AS STRING) as id, column1, column2
FROM
dataset.mytable;
它总是这样,或者我犯了错误?
我弄错了?
不,这是设计,当你覆盖表原始模式丢失,列默认为可空
总是这样吗?
您应该使用CREATE OR REPLACE TABLEDDL语句来实现您的目标.像下面的东西
CREATE OR REPLACE TABLE `project.dataset.mytable` (
id STRING NOT NULL,
column1 INT64 NOT NULL,
column2 INT64 NOT NULL
) AS
SELECT CAST(id AS STRING) as id, column1, column2
FROM `project.dataset.mytable`
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
89 次 |
| 最近记录: |