'sqlca.sqlerrd1' 返回提供插入到表内的最后的 serial 值的单个整数。要确保有效的结果,请紧跟在将带有 serial 值的单个行插入到表内的单 SELECT 语句之后使用此选项。
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 教程指南。