暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase数据库使用 'serial8' 和 'bigserial' 选项

郑小雯 2023-09-25
113

使用 'serial8' 和 'bigserial' 选项

'bigserial' 和 'serial8' 选项分别返回指定插入到了表内的最后的 SERIAL8 或 BIGSERIAL 值的单个整数。要确保有效的结果,请紧跟在插入 SERIAL8 或 BIGSERIAL 值的 INSERT 语句之后使用此选项。

提示: 要获取被插入到表内的最后 SERIAL 值的值,请使用 DBINFO( ) 的 'sqlca.sqlerrd1' 选 项。要获取更多信息,请参阅 使用 'sqlca.sqlerrd1' 选项。 下列示例使用 'serial8' 选项:

EXEC SQL CREATE TABLE fst_tab (ordernum SERIAL8, partnum INT); EXEC SQL CREATE TABLE sec_tab (ordernum SERIAL8); 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 SELECT dbinfo('serial8') FROM fst_tab WHERE partnum = 6;

此示例将包含主键 SERIAL8 值的行插入到 fst_tab 表内,并使用 DBINFO 函数来将相同的 SERIAL8 值插入到 sec_tab 表内。DBINFO 函数返回的值是被插入到 fst_tab 内的最后一行的 SERIAL8 值。在随后行中的子查询包含 WHERE 子句,因此返回单个值。 SQLCA 结构不记录由触发器插入的 serial 值。您不可以 'bigserial' 选项调用 DBINFO 函数来返 回由表上的触发器的触发器活动直接地插入了的最近的 BIGSERIAL 值(视图上的 INSTEAD OF

触发器的也不可返回)。出于同样的原因,DBINFO ('serial8') 函数不可返回由表上的触发器插入了 的 SERIAL8 值,由视图上的 INSTEAD OF 触发器也不可返回。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论