Teradata 15:失败7545身份栏已超出限制

时间:2015-10-23 23:05:33

标签: sql teradata

我得到了这个Teradata失败7545 Identity Column超出了它的限制,但我只插入了几百条记录,我已经将数据类型从INT更改为BIGINT。

这是我的创建表语法,我真的很困惑为什么Teradata不开心?

CREATE  TABLE LOCATION
(        LOCATION_ID          BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH  1 INCREMENT BY 1 MAXVALUE     1000000)  ,
     ....

非常感谢任何见解

3 个答案:

答案 0 :(得分:3)

您的定义默认为NO CYCLEMAXVALUE设置为1000000,因此如果您使用INTBIGINT,则无关紧要最大数量是1,000,000。

Teradata并行分配IDENTITY,即每个AMP / PE根据dbscontrol参数IdCol Batch Size请求一系列数字,因此在您实际插入一百万行之前将达到1,000,000。

删除MAXVALUE,但保留BIGINT,只有在需要存储数百万行时才使用INT ...

答案 1 :(得分:0)

尝试使用ALWAYS和NO CYCLE而不是默认生成... 还要检查DBSCONTROL参数27中的IdCol批量大小。 就像在我的情况下它是10k所以,尝试增加它然后尝试。

  1. IdCol批量大小= 10000

答案 2 :(得分:0)

这是一个有效的解决方案:

我将最大值增加到1亿。

原因是每个AMP获得100,000个数字范围。我的2750设备中有72个AMP,因此最小值为720万。当我对最大标识列值的定义超过720万时,它就有用了。