【发布时间】:2016-10-04 01:15:22
【问题描述】:
有没有办法在大查询中为表中的列设置默认值?我想将“false”设置为布尔数据类型列的默认值。
【问题讨论】:
-
您应该根据自己的需要进行更多扩展。
标签: sql google-bigquery google-cloud-platform
有没有办法在大查询中为表中的列设置默认值?我想将“false”设置为布尔数据类型列的默认值。
【问题讨论】:
标签: sql google-bigquery google-cloud-platform
可空列可以(通常)具有 NULL 默认值,但 BigQuery 中没有其他默认概念(您要么插入特定值,要么省略该值,它将具有 NULL 值)。
也就是说,如果您想将原始表包装在视图中,您可以将 NULL 列值映射到您喜欢的任何默认值。
【讨论】:
BigQuery 中的列没有默认值
简单的方法就是使用 NULL(在大多数情况下,这应该可以从需求预期中接受)
还要考虑这方面的成本 - 将 NULL 存储为默认成本为零而不是存储实际值将花费您的列大小乘以具有默认值的行数
如果 NULL 对您有用,但您仍然需要在应用程序中使用真正的默认值 - 您可以使用字段描述来存储有关该字段的一些元数据,包括默认值,以便应用程序能够检索它并根据应用程序逻辑使用它
在 BigQuery 中 - 查看是公开真实默认值的最佳方式
【讨论】:
NOT NULL,则不必存储DEFAULT 值,至少在DEFAULT 或可空性改变之前不必存储。跨度>
虽然您无法在表级别设置默认值,但您可以在插入时在 SQL 中执行此操作,前提是这适合您的目的。你可以使用IF()conditional expression,比如:
SELECT IF(field IS NOT NULL, field, "default") from `table`
事实上,你可以随心所欲地做任何条件表达式。
【讨论】: