标识列

标识列



缺省情况下生成的标识列
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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值