我想在可能的情况下使用单个语句将多个记录插入到具有SERIAL列的表中 .

我还需要知道插入生成了什么值 . 我的方法是尝试在每次插入后将dbinfo('sqlca.sqlerrd1')的结果存储在临时表中,然后在最后读取表 .

我的代码是这样的:

CREATE TEMP TABLE Ids1410363201 (ID INT);

INSERT INTO tableA (title) VALUES ('Test1');

INSERT INTO Ids1410363201 (ID)
VALUES (dbinfo('sqlca.sqlerrd1'));

INSERT INTO tableA (title) VALUES ('Test2');

INSERT INTO Ids1410363201 (ID)
VALUES (dbinfo('sqlca.sqlerrd1')); 

INSERT INTO tableA (title) VALUES ('Test3');

INSERT INTO Ids1410363201 (ID)
VALUES (dbinfo('sqlca.sqlerrd1')); 

select ID
from Ids1410363201

该表的架构是:

CREATE TABLE tableA (ID SERIAL, title VARCHAR(50))

但是,0正在插入临时表而不是SERIAL列的值 . 所以最终的选择返回:

ID
--
0
0
0

他们以任何方式将实际的SERIAL号码输入临时表吗?或者我可以采用不同的方法吗?

我正在使用Informix v12.1

EDIT

具体来说,我的目标是Informix v12.10.FC9WE . 我正在使用IBM的64位Informix ODBC驱动程序(v3.70.TC7)在Windows 7计算机上运行 . 我尝试了两个客户端:Database.net和一个简称为“查询工具”的通用ODBC客户端 .