【问题标题】:Add Column to Table with Default Value使用默认值向表中添加列
【发布时间】:2019-05-21 02:57:33
【问题描述】:

我正在尝试向表中添加一列(最好不使用数据框),默认值为“MONTHLY”

ALTER TABLE aa_monthly ADD COLUMNS (Monthly_or_Weekly_Indicator string NOT NULL FIRST DEFAULT ('MONTHLY'))

这给了我一个错误:

SQL 语句中的错误:ParseException: mismatched input 'DEFAULT' 期待 ')'(第 1 行,第 88 位)

无论我在 sql 语句中是否有FIRST,我都会遇到同样的错误。

我看过herehere

【问题讨论】:

    标签: sql hive pyspark apache-spark-sql databricks


    【解决方案1】:

    在 Hive 你 cannot add a default value for a column,很遗憾。

    column change 命令只会修改 Hive 的元数据,不会修改数据

    【讨论】:

      【解决方案2】:

      希望对你有帮助

      ALTER TABLE aa_monthly 
          ADD Monthly_or_Weekly_Indicator string NOT NULL DEFAULT 'MONTHLY'
      

      【讨论】:

      • 啊,我收到此错误:SQL 语句中的错误:ParseException:输入“ALTER TABLE aa_monthly ADD Monthly_or_Weekly_Indicator”(第 1 行,第 35 行)没有可行的替代方案。它在“添加”之后显示错误
      【解决方案3】:

      有多种方法

      1)  ALTER TABLE aa_monthly 
          ADD Monthly_or_Weekly_Indicator string  not null
          CONSTRAINT Monthly_or_Weekly_Indicator DEFAULT 'MONTHLY'
          WITH VALUES
      
      2)  ALTER TABLE aa_monthly 
          ADD Monthly_or_Weekly_Indicator string NOT NULL DEFAULT 'MONTHLY'
      

      【讨论】:

      • 不幸的是,这些都不起作用。他们都在“添加”后立即挂断。我得到同样的错误: com.databricks.backend.common.rpc.DatabricksExceptions$SQLExecutionException: org.apache.spark.sql.catalyst.parser.ParseException: 在输入'ALTER TABLE aa_monthly \n ADD Monthly_or_Weekly_Indicator'(line 2,位置 8)
      • 你是直接点击这个查询还是通过任何程序??
      • 直接。我在数据块中使用 sql
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-08
      • 2017-10-19
      • 1970-01-01
      相关资源
      最近更新 更多