使用 'sqlca.sqlerrd1' 选项

'sqlca.sqlerrd1' 返回提供插入到表内的最后的 serial 值的单个整数。要确保有效的结果,请紧跟在将带有 serial 值的单个行插入到表内的单 SELECT 语句之后使用此选项。

提示: 要获取插入到表内的最后的 SERIAL8 值的值,请使用 DBINFO'serial8' 选项。要获取更多信息,请参阅 使用 'serial8' 和 'bigserial' 选项
下列示例使用 'sqlca.sqlerrd1' 选项:
EXEC SQL create table fst_tab (ordernum serial, partnum int);
        EXEC SQL create table sec_tab (ordernum serial);
        EXEC SQL insert into fst_tab VALUES (0,1);
        EXEC SQL insert into fst_tab VALUES (0,4);
        EXEC SQL insert into fst_tab VALUES (0,6);
        EXEC SQL insert into sec_tab values (dbinfo('sqlca.sqlerrd1'));

此示例将包含主键 serial 值的一行插入到 fst_tab 表内,然后使用 DBINFO 函数来将同一 serial 值插入到 sec_tab 表内。DBINFO 函数返回的值是被插入到 fst_tab 内的最后一行的 serial 值。

由于 SQLCA 结构不记录通过触发器插入的 serial 值,因此您不可以 'sqlca.sqlerrd1''bigserial''serial8' 选项调用 DBINFO 函数来返回触发器的活动插入的 serial 值。

要获取更多关于“SQL 通信区域”(SQLCA)数据结构的信息(sqlca.sqlerrd1 在其内是一个字段),请参阅 GBase 8s SQL 教程指南