我的问题是:我可以在非QUNIQUE主键上下文中通过SQL在DB2表中执行行特定的更新/删除操作吗?
该表是AS / 400本地系统上的物理文件。 就像许多其他文件一样,它是在没有唯一定义的情况下创建的,这导致DB2得出结论,即表或PF不具有唯一键。
那是我的问题。我无法覆盖表的结构以插入唯一的ID ROW,因为我必须在AS / 400上重新编译所有相关程序,这是一个严重的问题,很多事情将不再起作用,“也许” 。当然,我可以对一个表进行重构,但是我们的系统中有成千上万个本机文件,其中一些使用唯一键做得很好,有些没有唯一定义...
好吧,我大部分时间都在旧文件上使用db2和sql。而且所有具有唯一密钥的文件对我来说都是重要的更新/删除操作。
是否有某种方法可以为每个选择添加额外的列,这些列具有非常独特的行ID和相应的行号。此外,更重要的是,如何更新此RowNumber。
我做了一些研究,同时我假设,在没有唯一密钥存在的情况下,没有机会进行准确的更改或删除。我希望将始终随表格一起发送一些其他ID-ROW夹,在我执行更新/删除操作时可以参考。也许我的想法有点谬误,因为非唯一键表旨在以其他方式进行编辑。
答案 0 :(得分:3)
尝试使用RRN功能。
SELECT RRN(EMPLOYEE), LASTNAME
FROM EMPLOYEE
WHERE ...;
UPDATE EMPLOYEE
SET ...
WHERE RRN(EMPLOYEE) = ...;