在配置单元中创建表时向列添加默认值

     2023-03-23     284

关键词:

【中文标题】在配置单元中创建表时向列添加默认值【英文标题】:Adding a default value to a column while creating table in hive 【发布时间】:2015-05-04 15:07:59 【问题描述】:

我能够从外部文件中的数据创建一个配置单元表。现在我希望从上一个表中的数据创建另一个表,其中包含具有默认值的附加列。

我知道可以使用 CREATE TABLE AS SELECT 但如何添加具有默认值的其他列?

【问题讨论】:

【参考方案1】:

您可以指定在创建/更新时从表中选择哪些列。只需提供默认值作为列之一。 UPDATE 示例如下:

创建简单的表并用值填充它:

hive> create table table1(col1 string);
hive> insert into table table1 values('val1');
hive> select col1 from table1;
OK
val1
Time taken: 0.087 seconds, Fetched: 1 row(s)

允许动态分区:

hive> SET hive.exec.dynamic.partition.mode=nonstrict;

创建第二个表:

hive> create table table2(col1 string, col2 string);

使用默认值从 table1 填充它:

hive> insert overwrite table table2 select col1, 'DEFAULT' from table1;
hive> select * from table2;
OK
val1    DEFAULT
Time taken: 0.081 seconds, Fetched: 1 row(s)

【讨论】:

很难相信在 hive ql 中没有类似的支持【参考方案2】:

我也一直在寻找解决方案并想出了这个:

CREATE TABLE test_table AS SELECT
 CASE 
  WHEN TRUE
  THEN "desired_value" 
 END AS default_column_name;

【讨论】:

在 clickhouse 中创建表时如何将自定义默认值添加到 Nullable 类型?

】在clickhouse中创建表时如何将自定义默认值添加到Nullable类型?【英文标题】:HowtoaddcustomdefaultvaluetoNullabletypewhencreatingtableinclickhouse?【发布时间】:2021-11-0912:50:06【问题描述】:我希望能够为特定行插入空值,而不是默认情况... 查看详情

在 sqlite3 中创建表时出错

】在sqlite3中创建表时出错【英文标题】:Errorwithcreatetablesinsqlite3【发布时间】:2017-06-0619:41:15【问题描述】:我正在python3中学习sqlite3。我使用语法在表中添加了4列c.execute("CREATEtableraman(ATOMICNUMBERINT,SYMBOLTEXT,ROWINT,COLUMNINT)")我想为... 查看详情

使用 create-hive-table 在 Hive 中创建表时如何使用自定义分隔符

...从RDBMS表导入HDFS。然后我使用create-hive-table将架构复制到配置单元,然后将数据加载到该配置单元表。用于 查看详情

在Oracle 11g 中创建表时如何保存表?

】在Oracle11g中创建表时如何保存表?【英文标题】:howtosaveatablewhenitiscreatedinOracle11g?【发布时间】:2017-02-1506:49:31【问题描述】:我给出了CREATETABLE的命令并将值插入到表中,但它没有保存。下次我登录时,表在那里,但插入的... 查看详情

在mysql集群中创建表时出错

】在mysql集群中创建表时出错【英文标题】:Errorwhilecreatingatableinmysqlcluster【发布时间】:2017-10-2812:11:48【问题描述】:我正在尝试在MySQLCluster中创建一个表。但在执行以下查询时出错。CREATETABLE`tbl_anal_results`(`id`int(11)NOTNULLAUTO_INC... 查看详情

从 HDFS 中的数据文件夹在配置单元中创建表 - 删除重复的行

】从HDFS中的数据文件夹在配置单元中创建表-删除重复的行【英文标题】:CreatetableinhivefromdatafolderinHDFS-removeduplicatedrows【发布时间】:2021-04-2612:46:36【问题描述】:我在HDFS中有一个文件夹,我们称之为/data/users/在该文件夹中,... 查看详情

在 postgres 8.1 中创建表时出错

】在postgres8.1中创建表时出错【英文标题】:Errorwhilecreatingtableinpostgres8.1【发布时间】:2015-06-2407:37:48【问题描述】:我的查询:createtableschema1.new_table(likeschema2.sometable);给出一个错误。这是由于版本8.1造成的吗?创建表时是否可... 查看详情

在mysql中创建表时使用变量作为表名

】在mysql中创建表时使用变量作为表名【英文标题】:Useavariableastablenamewhencreatingatableinmysql【发布时间】:2017-02-0500:08:15【问题描述】:我有变量whos的值是0到1000之间的随机数,我想在创建新表时使用它作为名称。我试图通过将... 查看详情

在 Postgres 中创建表时将空列设置为带时区的时间戳

】在Postgres中创建表时将空列设置为带时区的时间戳【英文标题】:SettinganemptycolumnasatimestampwithtimezonewhencreatingatableinPostgres【发布时间】:2021-12-0710:41:00【问题描述】:我正在尝试创建一个表,其中包含一个名为decay_date的列,该... 查看详情

在 SSMS (SQL Server) 中创建表

】在SSMS(SQLServer)中创建表【英文标题】:CreatingTableinSSMS(SQLServer)【发布时间】:2017-11-0220:00:13【问题描述】:当我使用SSMS接口创建表时,表“前缀”自动设置为MyCompanyName\\MyUserID.tableName.但是,当我使用查询创建表时,我可以将... 查看详情

无法在 HIVE 中创建表

】无法在HIVE中创建表【英文标题】:unableabletocreatetableinHIVE【发布时间】:2016-10-1117:55:18【问题描述】:当我尝试使用以下命令在HIVE中创建表时,CREATETABLEIFNOTEXISTSemployee(eidint,nameString,salaryString,destinationString)COMMENT\'Employeedetails\'R... 查看详情

使用 CURDATE() 作为默认值时在 mysql 中创建表失败

】使用CURDATE()作为默认值时在mysql中创建表失败【英文标题】:CreatetablefailinmysqlwhenusingCURDATE()asdefault【发布时间】:2011-04-1110:32:56【问题描述】:我正在尝试使用phpmyadminsql控制台创建下表:CREATETABLEdates(idintNOTNULL,id_datedatetimeNOTNU... 查看详情

如何在 mariaDB 中创建检查约束以检查 char 类型的多个值?

】如何在mariaDB中创建检查约束以检查char类型的多个值?【英文标题】:howtocreatecheckconstraintinmariaDBforcheckingchartypemultiplevalues?【发布时间】:2018-08-0104:13:19【问题描述】:我在***等QuestionAnswer网站的大学项目中工作,但在MariaDB中... 查看详情

mysql建表时怎样设置datetime类型的字段默认值为不自动更新的系统当前时间

只在插入数据的时候记录一次,之后不会自动改动MySQL中,默认值无法使用函数也就是你无法设置某一列,默认值是NOW()这样的处理假如需要某列的默认值为当前数据库时间,那么可以使用TIMESTAMP数据类型。插入的时候,填写null... 查看详情

PySpark:当通过 JDBC 在 Oracle 中创建表时,为啥我会得到“没有为类 oracle.jdbc.driver.T4CRowidAccessor 实现 getLong”?

】PySpark:当通过JDBC在Oracle中创建表时,为啥我会得到“没有为类oracle.jdbc.driver.T4CRowidAccessor实现getLong”?【英文标题】:PySpark:WhydoIget\'getLongnotimplementedforclassoracle.jdbc.driver.T4CRowidAccessor\'whencreatingatableinOracleviaJDBC?PySpark: 查看详情

在sql创建数据库表时,如何为字段设一个默认值

在sql创建数据库表时,如何为字段设一个默认值1、打开SQLServerManagementStudio管理工具,输入用户名、密码连接上sqlserver数据库。2、展开想要创建表的数据库,在【表】菜单上点击鼠标右键,选择【新建】->【表】。3、在打开的... 查看详情

向列'datetime'添加值时导致溢出

...date(),dateadd(day,364,date))>=10”后运行,系统仍是报错——向列'datetime'添加值时导致溢出?后来在条件语句中增加了一个排序(以tt为排序字段)后,这个查询语句又能正常运行?这两点我实在想不通,请各位大大指点。。... 查看详情

当我们从 s3 中的 csv 文件读取数据并在 aws athena 中创建表时如何跳过标题。

】当我们从s3中的csv文件读取数据并在awsathena中创建表时如何跳过标题。【英文标题】:Howtoskipheaderswhenwearereadingdatafromacsvfileins3andcreatingatableinawsathena.【发布时间】:2017-08-0315:37:21【问题描述】:我正在尝试从s3存储桶中读取csv... 查看详情