无法通过Presto连接器插入mysql表的时间戳列

时间:2019-12-04 05:55:49

标签: mysql presto

我用timestamp列创建了一个测试mysql表。当我尝试通过Presto插入数据时。 Presto失败。

在Presto 0.229 CLI中:
插入test(id,Date,timestamp)值(6,current_date,localtimestamp);
结果:
查询20191204_051244_00031_xrwc9失败:不支持的列类型:时间戳

MYSQL表:

CREATE TABLE `NewTable` (
`ID`  int(11) NOT NULL ,
`var`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' ,
`Date`  date NULL DEFAULT '' ,
`Time`  time NULL DEFAULT '' ,
`Timestamp`  timestamp NULL DEFAULT '' ON UPDATE CURRENT_TIMESTAMP ,
PRIMARY KEY (`ID`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
ROW_FORMAT=DYNAMIC
;

2 个答案:

答案 0 :(得分:1)

我在Presto 312周围的MySQL连接器中实现了对timestamp数据类型的支持。

Download latest Presto 326并享受。

或者,下载Starburst Presto并享受一些额外的好处。

答案 1 :(得分:0)

您不能默认datetime数据类型为空值。

CREATE TABLE `NewTable` (
`ID`  int(11) NOT NULL ,
`var`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' ,
`Date`  date NULL DEFAULT NULL ,
`Time`  time NULL DEFAULT NULL ,
`Timestamp`  timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP ,
PRIMARY KEY (`ID`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
ROW_FORMAT=DYNAMIC
;