使用参数和select语句创建SQL插入语句

时间:2012-04-18 13:49:03

标签: sql db2

我试图提出一个执行以下操作的DB2 SQL语句,但我不确定 如果这是允许的话。

我知道有可能insert into tableA ( ... ) Values (?,?,?,...)
然后为这些参数?分配值。

是否可以预先定义其中一个参数的值?

例如,我要插入的列之一是ID column,我想使其类似于select max(id) + 1 from tableA

这就是我想要达到的目的 - 这种语法是否可以在db2

中使用
insert into tableA (ID, Text1, Text2) VALUES (select max(id)+1 from tableA, ?, ?)

无论如何 - 任何帮助都将不胜感激!

谢谢!

3 个答案:

答案 0 :(得分:3)

这应该有效:

 insert into tableA values((select max(id)+1 from tableA),'text1','text')

答案 1 :(得分:0)

听起来你想要一个主键作为你桌子上的索引。

db2 alter table tableA add primary key (id)

这将在表格中创建一个列,当您添加新记录时,该列将自动增加。 来源(http://www.ibm.com/developerworks/data/library/techarticle/dm-0401melnyk/

答案 2 :(得分:0)

您也可以尝试使用OVERRIDING USER VALUE参数:

INSERT INTO TableA
OVERRIDING USER VALUE 
SELECT 0,Text1, Text2
From TableB