【发布时间】: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 - 没关系。如果你不能用简单明了的英语表达你想要什么的一般概念,你可能注定要失败。你似乎对你已经决定的某个实现想得太多,这让我很难找到你真正想要的。