db2中插入数据后直接返回主键(自增列id)的sql怎么写
发布网友
发布时间:2022-04-07 22:08
我来回答
共2个回答
懂视网
时间:2022-04-08 02:29
1 import java.util.UUID;
2 import COM.ibm.db2.app.UDF;
3
4 public class UDFUUID extends UDF{
5 public static String uuid(){
6 UUID uuid = UUID.randomUUID();
7 //去掉中间的分隔
8 String uid = uuid.toString().replaceAll("-", "");
9 return uid;
10 }
11 }
2.把JAVA类放到DB2函数库目录下去,放到IBMSQLLIBFUNCTION下
3.用DB2带的jdk编译一下,
IBMSQLLIBjavajkdinjavac UDFUUID.java
4.注册函数
1 drop function uuid;
2 create function uuid()
3 returns char(32)
4 fenced
5 variant
6 no sql
7 language java
8 parameter style java
9 external name ‘UDFUUID!uuid‘;
5.使用看看
values(uuid());
以后想怎么用就怎么用吧
DB2定义UUID
标签:
热心网友
时间:2022-04-07 23:37
db2
=>
CREATE
TABLE
test_create_tab2
(
db2
(cont.)
=>
id
INT
NOT
NULL
PRIMARY
KEY
generated
always
as
identity,
db2
(cont.)
=>
val
VARCHAR(10)
db2
(cont.)
=>
);
DB20000I
SQL
命令成功完成。
db2
=>
INSERT
INTO
test_create_tab2(val)
VALUES
('NO
id');
DB20000I
SQL
命令成功完成。
这里和
SQL
Server
一样,大家都不能手动指定那个
自增id
的数值
db2
=>
INSERT
INTO
test_create_tab2(id,
val)
VALUES
(1,
'id
no
use');
DB21034E
该命令被当作
SQL
语句来处理,因为它是无效的“命令行处理器”命令。在
SQL
处理期间,它返回:
SQL0798N
不能为定义为
GENERATED
ALWAYS
的列
"ID"
指定值。
SQLSTATE=428C9
这里和
SQL
Server
不一样,SQL
Server
会自动排除掉那个自动递增的列
db2
=>
INSERT
INTO
test_create_tab2
VALUES
('Is
Auto
?');
DB21034E
该命令被当作
SQL
语句来处理,因为它是无效的“命令行处理器”命令。在
SQL
处理期间,它返回:
SQL0117N
赋值数目与指定的或隐含的列数或变量数不一样。
SQLSTATE=42802
关于
初始数值的设定。
db2
=>
drop
TABLE
test_create_tab2;
DB20000I
SQL
命令成功完成。
db2
=>
CREATE
TABLE
test_create_tab2
(
db2
(cont.)
=>
id
INT
NOT
NULL
PRIMARY
KEY
generated
always
as
identity
db2
(cont.)
=>
(Start
With
100
db2
(cont.)
=>
Increment
by
1
db2
(cont.)
=>
minvalue
100
db2
(cont.)
=>
maxvalue
999999999
db2
(cont.)
=>
no
cycle
cache
5
no
order),
db2
(cont.)
=>
val
VARCHAR(10)
db2
(cont.)
=>
);
DB20000I
SQL
命令成功完成。
db2
=>
INSERT
INTO
test_create_tab2(val)
VALUES
('NO
id');
DB20000I
SQL
命令成功完成。
db2
=>
select
*
from
test_create_tab2;
ID
VAL
-----------
----------
100
NO
id
1
条记录已选择。
db2
=>
select
identity_val_local()
from
SYSIBM.SYSDUMMY1;
1
---------------------------------
100.
1
条记录已选择。