PostgreSQL主键和外键

时间:2014-01-23 12:40:21

标签: sql database postgresql

下一个问题给你们。

我有两张桌子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,因为现在有第一个免费号码:/

1 个答案:

答案 0 :(得分:0)

你的列ID2应该是整数,而不是串行。

每个插入时,串行列会自动递增。无法确保ID2始终与主表的ID具有相同的值。

执行此操作的正确方法是将插入返回的ID捕获到主表中,并执行类似INSERT INTO child_table(f1,f2,id2)值的操作('foo','bar',captured_id);