我试图提出一个执行以下操作的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, ?, ?)
无论如何 - 任何帮助都将不胜感激!
谢谢!
答案 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