我想在可能的情况下使用单个语句将多个记录插入到具有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客户端 .