【问题标题】:Multiple operation in same sql同一个sql中的多个操作
【发布时间】:2014-01-14 10:41:11
【问题描述】:

我有一个包含 RECID,regionID, areaID ,UserID ,AppNo, NextAppNo(Accepts null) 列的表格

数据如下(仅第一行NextApp不为空):

1,102,Ar-1,xyz,1,1
2,102,Ar-1,qwe,2
3,102,Ar-1,fgh,3
4,102,Ar-1,yuyi,4

1) 添加记录

现在我要添加另一条记录:

  • 首先我得到 APPID where areaID = Ar-1 and regionID =102 (Java) 的最大数量
  • 然后,如果max appNo为0,则添加nextappNo,否则什么都不做
  • 然后插入到数据库中

是否可以在一个查询中执行此操作?

2) 删除记录

在另一个查询中我想删除第一条记录:

  • 首先我选择数据where areaID = 'Ar-1' and regionID =102
  • 然后在循环 (Java) 中检查 Recid 是否与我要删除的 id 相同
  • 从那里开始我更新列批准者,如果我们要删除的记录有approverNO = 1,那么也将下一个批准者更新为下一条记录之一
  • 然后从表中删除记录。

【问题讨论】:

  • 对于第 2 点,为什么需要循环?您不能进行选择查询,以使您获取的行对您必须删除的行有一个 recid = 并且具有 areaid='Ar-1' 和 regionId = 102 吗??
  • 您应该尝试描述您真正想要实现的目标。您的描述在精神上是必要的,在 SQL 的上下文中有点令人困惑。
  • @TheUnknown 我必须更新 apprNo 例如,如果使用 aprpno 2 的 rec 被删除而不是从那里开始 apprNo 3 变为 apprNo 2 并且 appNo 4 变为 3 等等,如果这是第一个批准者,那就是删除而不是将下一个批准人添加到 1
  • @Ingo 这是 sql 和 java 的组合
  • @Haider - 没关系。如果你不能用简单明了的英语表达你想要什么的一般概念,你可能注定要失败。你似乎对你已经决定的某个实现想得太多,这让我很难找到你真正想要的。

标签: java jdbc db2


【解决方案1】:

您可以使用 sql 过程来执行此操作。当您使用任何类型的操作(例如插入、删除、更新等)执行单个过程时,会更容易,

【讨论】:

  • 所以如果我这样做,我必须循环 sp 中的记录以重新分配 ApproverNo 序列。
  • 是的,但是使用单个 sp 您可以执行所需的任意数量的操作。
  • db2 中可用的任何功能,我可以在其中分配具有某些条件的序列
猜你喜欢
  • 1970-01-01
  • 2014-04-27
  • 2016-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多