我得到了这个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) ,
....
非常感谢任何见解
答案 0 :(得分:3)
您的定义默认为NO CYCLE
,MAXVALUE
设置为1000000
,因此如果您使用INT
或BIGINT
,则无关紧要最大数量是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所以,尝试增加它然后尝试。
答案 2 :(得分:0)
这是一个有效的解决方案:
我将最大值增加到1亿。
原因是每个AMP获得100,000个数字范围。我的2750设备中有72个AMP,因此最小值为720万。当我对最大标识列值的定义超过720万时,它就有用了。