db2数据库导入时自动增长的ID列如何填写

db2数据库导入时自动增长的ID列是否需要填写,是从1开始填写,还是从原数据中找出最大值加1。... db2数据库导入时自动增长的ID列是否需要填写,是从1开始填写,还是从原数据中找出最大值加1。 展开
 我来答
a328350493
推荐于2017-10-07 · TA获得超过184个赞
知道小有建树答主
回答量:106
采纳率:0%
帮助的人:99.3万
展开全部
DB2 列的自动增长都是通过序列实现的。
所以你需要确定DB2的列引用的是哪个序列,才能确定当前值、下一列值。如何确定引用哪个序列,最简单的办法是问谁添加的自动增长序列。最2的办法是直接挨个查syscat.sequences视图。执行values(next value for 序列名)能打印下一自动增长值。

插入这样的值,跟插入正常列一样。因为next value for seq_001 实际就是打印一个数字。你知道序列规则的话直接填真实数值插入就可以。

create sequence seq_001

start with 1

increment by 1

no maxvalue

no cycle

cache 21
;

insert into test1(cid,cname,sex,age) values(next value for seq_001,'scott','M',30);
追问

我是直接进行数据导入,结果出错。列名都对,就是自动增长的ID是空的,结果出现下面的错误,是选择从第二行开始导入,第一行是列名,第二行开始是需导入的数据,59列里面有很多列是空值,自动增长的ID是空的。如何解决呢?

 

追答
这个工具没用过,如果现在自动增长是空的话,建议直接UPDATE,赋值语句update test1 set id=(next value for seq_001)
where 选中你插入的那段数据
du瓶邪
推荐于2017-10-04 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2930万
展开全部
DB2自增长列:
1当想将表中一列修改为自动增长时,可用下面命令:
Alter table <table name> alter column <column name> set not null
Alter table <table name> alter column <column name> set generated always as identity (start with 1,increment by 1)
上面命令是在改一表中列的属性时,在网上找到的很有用。
2当修改表中一列自动增长的开始值时,可用下面的命令:
ALTER TABLE <talbe_name> ALTER COLUMN <column name> RESTART WITH 18;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-07-31
展开全部
自增长的ID 能填写么?只读的
追问
通过excel表导入,表格列名和数据表内的字段名一致,数据表内的有很多条,excel表也有很多条,导入时选择从哪行开始,在SQL2000是从列名开始,但列名不会导入的,在db2中能如何导入,选择从第一行(含列名)还是从第二行从实际数据开始导入。
数据表内的字段中有一个是自增值的,excel表的本列是不是需要填写,或如何填写?
谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
micro0369
2014-07-30 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:4048万
展开全部
不需要填写的。

看那个 序列 的当前值是多少?
更多追问追答
追问
通过excel表导入,表格列名和数据表内的字段名一致,数据表内的有很多条,excel表也有很多条,导入时选择从哪行开始,在SQL2000是从列名开始,但列名不会导入的,在db2中能如何导入,选择从第一行(含列名)还是从第二行从实际数据开始导入。
数据表内的字段中有一个是自增值的,excel表的本列是不是需要填写,或如何填写?
谢谢
追答
数据库中这列设置为 自动增长啊,那么excel的就可以不用填写的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式