- 论坛徽章:
- 0
|
请问:db2怎么象oracle一样取序列生成器,谢谢
[quote]原帖由 "vlife"]自动增加的字段在数据导入和导出的时候大家都用的什么方法啊??[/quote 发表:
对于用下面DDL语句建立的表,在LOAD操作时如何控制自生成列的值?
create table idn1(id integer, name char(20), dn integer not null generated always as identity (start with 1, increment by 1))
解答 可以在LOAD命令中加下面参数控制自生成列:
1 modified by identityignore
加载的数据文件中有自生成列值,LOAD时忽略数据文件中自生成列值
2 modified by identitymissing
加载的数据文件中没有自生成列值,LOAD时自动生成自生成列值
3 modified by identityoverride
加载的数据文件中有自生成列值,LOAD时使用用数据文件中的自生成列值
例如:
在数据文件idn1.del的内容如下:
1,"Test ----------------",1
2,"Test ----------------",2
3,"Test ----------------",3
4,"Test ----------------",4
5,"Test ----------------",5
在数据文件idn2.del的内容如下:
1,"Test -----------------"
2,"Test -----------------"
3,"Test ---------------- "
4,"Test -----------------"
5,"Test -----------------"
select * from idn1的输出为:
ID -----NAME -----------DN
------- ------------- ------
--------1 Test ---------1
--------2 Test ---------2
--------3 Test ---------3
3 条记录已选择。
执行下面LOAD命令后
load from idn1.del of del modified by identityignore insert into idn1
select * from idn1的输出为:
ID -----NAME ---------DN
------- ------------ -------
-------1 Test ---------1
-------2 Test--------- 2
-------3 Test--------- 3
-------1 Test--------- 4
-------2 Test--------- 5
-------3 Test--------- 6
-------4 Test--------- 7
-------5 Test ---------8
8 条记录已选择。 执行下面LOAD命令后
load from idn2.del of del modified by identitymissing insert into idn1
db2 select * from idn1的输出为:
ID ----NAME ------DN
------ --------- -------
-----1 Test -----1
-----2 Test -----2
-----3 Test -----3
-----1 Test -----4
-----2 Test -----5
-----3 Test----- 6
-----4 Test -----7
-----5 Test -----8
8 条记录已选择。
执行下面LOAD命令后
load from idn1.del of del modified by identityoverride insert into idn1
select * from idn1的输出为:
ID -----NAME----- DN
------ --------- --------
-----1 Test -----1
-----2 Test -----2
-----3 Test -----3
-----1 Test----- 1
-----2 Test -----2
-----3 Test----- 3
-----4 Test -----4
-----5 Test -----5
8 条记录已选择。 |
|