GridDB中TimeSeries容器无法将高精度TIMESTAMP设为主键的问题
GridDB TimeSeries容器微秒精度时间戳主键报错解决
问题原因
GridDB的TimeSeries容器对主键类型有特定限制:当使用TIMESTAMP作为行键时,不支持带精度后缀(如TIMESTAMP(6))的语法声明,即使底层TIMESTAMP类型本身支持微秒/纳秒精度,这种带精度的写法会触发schema验证错误。
解决方法
将主键的TIMESTAMP类型声明改为不带精度的形式,GridDB会自动保留时间戳的微秒精度。修改后的SQL语句如下:
CREATE TABLE meter_3 ( timestamp TIMESTAMP PRIMARY KEY, kwh DOUBLE, temp DOUBLE ) USING TIMESERIES;
补充说明
GridDB的TIMESTAMP类型本质支持最高纳秒级精度,插入带微秒的时间戳(如2024-05-20 12:34:56.123456)时,系统会完整存储该精度信息,无需通过TIMESTAMP(6)声明来开启微秒支持。
内容的提问来源于stack exchange,提问作者Jessica Williams
相关产品推荐
相关产品推荐

