【发布时间】:2013-02-04 10:54:14
【问题描述】:
我有两个表,它们的公共字段是 Load_ID。第一个的PK和第二个的FK是一对多的关系。例如:
Table1:
1, someValue
Table2:
1, value1, ...
1, value2, ...
1, value3, ...
我已经在一个 ASP.NET 类中嵌入了实际的插入语句,其中的值取自用户输入:
"INSERT INTO Compare_Header_Table VALUES
(compare_sequence.nextval, //other values are inserted here)
我用来自动增加 PK 的序列是CREATE SEQUENCE compare_sequence;
即使没有创建触发器或指定任何参数,这似乎也可以工作,因为序列默认为增量 1 和初始值 1,这对我的目的来说很好。
我遇到问题的地方是尝试将 FK 从第二个表链接到第一个表的 PK。我不能简单地使用 compare_sequence.currval,因为我有一个单独的插入方法每个表,所以我每次都创建一个新连接。我不想将这些组合成一种方法,因为这将涉及更改我的 C# 类的逻辑结构,我宁愿保持原样。
对如何完成这项工作有任何建议吗?
【问题讨论】:
-
您不应该为应该在单个事务中的插入使用单独的连接。
-
@a_horse_with_no_name 很高兴知道以供将来参考。最初我只是将它插入一张桌子,但后来它被分成了两张。现在一次完成所有插入将涉及一些我宁愿避免的重大重组。
标签: sql oracle auto-increment