使用默认值将列添加到表

时间:2019-05-21 02:57:34

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

我正在尝试向表中添加一列(理想情况下不使用数据框),其默认值为'MONTHLY'

import pyodbc
server = '<server>.database.windows.net'
database = '<database>'
username = '<username>'
password = '<password>'
driver= '{ODBC Driver 17 for SQL Server}'
cnxn = pyodbc.connect('DRIVER='+driver+';SERVER='+server+';PORT=1433;DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
cursor.execute("SELECT TOP 20 pc.Name as CategoryName, p.name as ProductName FROM [SalesLT].[ProductCategory] pc JOIN [SalesLT].[Product] p ON pc.productcategoryid = p.productcategoryid")
row = cursor.fetchone()
while row:
    print (str(row[0]) + " " + str(row[1]))
    row = cursor.fetchone()

这给我一个错误:

  

SQL语句中的错误:ParseException:输入'DEFAULT'不匹配   期待')'(第1行,pos 88)

无论sql语句中是否有ALTER TABLE aa_monthly ADD COLUMNS (Monthly_or_Weekly_Indicator string NOT NULL FIRST DEFAULT ('MONTHLY')) ,我都会遇到相同的错误。

我看过herehere

3 个答案:

答案 0 :(得分:0)

希望这会有所帮助

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

答案 1 :(得分:0)

在Hive中,您cannot add a default value for a column令人遗憾。

  

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

答案 2 :(得分:0)

有多种方法

1.13.1