【发布时间】:2011-11-03 14:28:46
【问题描述】:
我的要求是先选择一条记录(该记录可能没有主键),然后删除同一条记录。
以下是流程:
- 从表中选择所有记录。
- while (resultset.next()),获取单条记录。
- 删除记录。
代码必须适用于所有数据库。因为这将是通用服务。
这是一个java数据库服务。目前它是为Oracle实现的。我们使用ROWID来识别每条记录。但是对于其他数据库它失败了,因为一些数据库没有ROWID和类似的概念。我想做这个服务通用的。我想应用除 ROWID 以外的一些逻辑
有什么想法吗?
非常感谢。
【问题讨论】:
-
此代码也必须与 .net 和 java 一起使用?你没有忘记php或c吗?
-
我的建议:进一步研究 SQL。您可以在单个查询中执行此操作,无需单独选择然后删除。
-
为什么不直接为有问题的行运行一个删除语句?
-
这是一项不可能完成的任务。如果没有主键或其他唯一标识符,您将无法正确删除记录。另外,您需要从集合的角度开始思考,您永远不会通过循环遍历表中的所有记录来完成这样的任务。
-
我认为您永远不会遍历某些内容来删除它,而是创建一个更有意义的删除 SQL 语句,例如:“DELETE FROM Customers c WHERE c.age > 20”。这样你就不需要主键来识别了。
标签: java .net mysql sql-server database