iceiceberg 发表于 2009-07-31 16:22

如何进行外键关联?

有两个表P和F。P.a是主键(a是serial字段),F.a是外键。
要在P和F中各插入一条相关联的记录。顺序应该是:先插入P再插入F。
这样有个问题就是我必须要在插入P表后,取得新插入的a字段的值,再把这个值插入到F表中。这样才能关联起来。
请问有什么办法可以得到a的值吗?

liaosnet 发表于 2009-07-31 17:05

select dbinfo('sqlca.sqlerrd1') from systables where tabid = 1;

也许对你有用~~

iceiceberg 发表于 2009-08-03 15:06

回复 #2 liaosnet 的帖子

谢谢!这个方法应该是和select max(a) from P 的结果是一样的吧。
有个问题是这样就只对单进程有效,如果有两个进程同时在执行,就可能读到另一个进程插入的数据,这样就会出现混乱。

liaosnet 发表于 2009-08-03 15:18

回复 #3 iceiceberg 的帖子

额..所以呢...建议使用程序实现..而不是简单的使用SQL处理..

lrg223 发表于 2009-08-03 16:31

select * from a,b where c=(select max(c) from a)
这种有效没:shock:

liaosnet 发表于 2009-08-03 16:59

回复 #5 lrg223 的帖子

每次做操作都要查一次表..这样有效率可言吗??

iceiceberg 发表于 2009-08-05 17:33

回复 #5 lrg223 的帖子

这种两个程序并行做也会有问题的。
页: [1]
查看完整版本: 如何进行外键关联?