我有一个默认生成的带有smallint标识列的表:
MyIdColumn smallint generated by default as identity (start with 1 increment by 1)
该列最多应为2或3位数字,因此使用smallint。
我想做一个单行插入;不幸的是,当我插入单行时,我得到了错误7545“标识列的编号超出了它的限制”。explain显示teradata正在执行一个all-amps检索&all-amps合并,搜索结果显示,在teradata上,成千上万的amps以某种方式请求并因此运行下一个标识值(我认为上限为32767)。
我有什么办法让它工作?我是否可以指定一个查询提示来告诉teradata只在一个amp上运行1行insert,而不运行增量?我真的需要指定一个bigint或其他更大的数据类型吗?实际上,只有2或3位数字才能容纳teradata?
1条答案
按热度按时间oyjwcjzk1#
尝试整数数据类型,它将支持最大值2147483647到最小值2147483647
如果需要,创建新表并在新表中重新加载数据,更改如下
默认情况下,myidcolumn整数作为标识生成(以1乘以1的增量开始)