我希望在可能的情况下使用单个语句将多个记录插入到具有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
修改
具体来说,我的目标是Informix v12.10.FC9WE。我使用IBM的64位Informix ODBC驱动程序(v3.70.TC7)在Windows 7计算机上运行。我尝试了两个客户端:Database.net和一个通用的ODBC客户端,简称为#34;查询工具"。