我试图在无法更改架构的商业数据库中插入表。插入正在尝试加载数百条记录。我要插入的表包含一个主键字段,而不是“标识”字段。在保持主键字段完整性的同时完成这些插入的最佳方法是什么?
INSERT INTO ADVANCED.BIF006 ( C_CUSTOMER, C_ACCOUNT, C_ADDTYPE, I_BIF006PK)
VALUES (
'', -- C_CUSTOMER - char(15)
'', -- C_ACCOUNT - char(15)
'', -- C_ADDTYPE - char(2)
???, -- I_BIF006PK - decimal(15, 0)
)
答案 0 :(得分:1)
这是一个猜测,因为我没有所有详细信息。希望对您有所帮助。
让我们假设数据加载之前的当前现有表的PK的最大值为1000
。然后,新行可以从1001
开始。为此,您可以使用序列。例如:
create sequence load_seq1 start with 1001
INSERT INTO ADVANCED.BIF006 ( C_CUSTOMER, C_ACCOUNT, C_ADDTYPE, I_BIF006PK)
VALUES (
'', -- C_CUSTOMER - char(15)
'', -- C_ACCOUNT - char(15)
'', -- C_ADDTYPE - char(2)
next value for load_seq1, -- I_BIF006PK - decimal(15, 0)
)
drop sequence load_seq1