标识列
缺省情况下生成的标识列
db2 => create table test3 (id int generated by default as identity,name char(8))
db2 => insert into test3 (name) values ('dongdo')
重复7次
db2 => insert into test3 (id,name) values (8,'dongdong')
db2 => select * from test3
ID NAME
----------- --------
1 dongdo
2 dongdong
3 dongdong
4 dongdong
5 dongdong
6 dongdong
7 dongdong
8 dongdong
8 条记录已选择。
db2 => insert into test3 (name) values ('dongdo')
db2 => select * from test3
ID NAME
----------- --------
1 dongdo
2 dongdong
3 dongdong
4 dongdong
5 dongdong
6 dongdong
7 dongdong
8 dongdong
8 dongdong
9 条记录已选择。
始终生成的标识列
db2 => create table test4 (id int generated always as identity,name varchar(8))
DB20000I SQL命令成功完成。
db2 => insert into test4 values ('dongdong')
DB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0117N 赋值数目与指定的或隐含的列数或变量数不一样。 SQLSTATE=42802
db2 => insert into test4 (name) values ('dongdong')
DB20000I SQL命令成功完成。
db2 => insert into test4 (id,name) values (1,'dongdong')
DB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0798N 不能为定义为 GENERATED ALWAYS 的列 "ID" 指定值。 SQLSTATE=428C9
缺省情况下生成的标识列
db2 => create table test3 (id int generated by default as identity,name char(8))
db2 => insert into test3 (name) values ('dongdo')
重复7次
db2 => insert into test3 (id,name) values (8,'dongdong')
db2 => select * from test3
ID NAME
----------- --------
1 dongdo
2 dongdong
3 dongdong
4 dongdong
5 dongdong
6 dongdong
7 dongdong
8 dongdong
8 条记录已选择。
db2 => insert into test3 (name) values ('dongdo')
db2 => select * from test3
ID NAME
----------- --------
1 dongdo
2 dongdong
3 dongdong
4 dongdong
5 dongdong
6 dongdong
7 dongdong
8 dongdong
8 dongdong
9 条记录已选择。
始终生成的标识列
db2 => create table test4 (id int generated always as identity,name varchar(8))
DB20000I SQL命令成功完成。
db2 => insert into test4 values ('dongdong')
DB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0117N 赋值数目与指定的或隐含的列数或变量数不一样。 SQLSTATE=42802
db2 => insert into test4 (name) values ('dongdong')
DB20000I SQL命令成功完成。
db2 => insert into test4 (id,name) values (1,'dongdong')
DB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0798N 不能为定义为 GENERATED ALWAYS 的列 "ID" 指定值。 SQLSTATE=428C9
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7338183/viewspace-660807/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7338183/viewspace-660807/