下一个问题给你们。
我有两张桌子STUFF和THINGS。第一个有两列:ID和CHECKED。 ID是此表的主键。它看起来像这样:
ID CHECKED
1 Y
2 N
3 Y
.....
第二个表,名为THINGS,也有一些列,但重要的是,在最后一栏中应该有我把最后一件物品放入STUFF ID列的ID
现在,我说:
INSERT INTO STUFF(CHECKED)VALUES'Y'返回ID
-it将返回ID = 4
这就是问题,之后我想把东西放到像这样创建的THINGS表中:
CREATE TABLE THINGS(XXX Varchar(),YYY varchar(),ID2 SERIAL REFERENCES STUFF(ID))
所以当我把任何东西都放到东西时:
插入表格(XXX,YYY)值('xxx','yyy')
我希望ID2中有这个号码,这是我输入STUFF的最后一个ID,因为现在有第一个免费号码:/
答案 0 :(得分:0)
你的列ID2应该是整数,而不是串行。
每个插入时,串行列会自动递增。无法确保ID2始终与主表的ID具有相同的值。
执行此操作的正确方法是将插入返回的ID捕获到主表中,并执行类似INSERT INTO child_table(f1,f2,id2)值的操作('foo','bar',captured_id);