2
我想存储最后20个产品用户已经看了看。如果用户浏览产品编号21,则应从ORACLE数据库中删除最旧的记录。如何限制oracle数据库中每个id的行数?
表中包含了系统中所有用户的最近浏览的产品。
所以基本上我需要检查,如果用户X拥有在数据表Y的记录,如果是删除最早的记录,以便用户X永远只在最近浏览过的产品数据表Y的记录。
任何帮助,将不胜感激。
这里是一个尝试我做了哪些工作不正常。
DELETE FROM VIEWED_PRODUCT
WHERE id NOT IN (
SELECT id
FROM (
SELECT * FROM (
SELECT id
FROM VIEWED_PRODUCT
WHERE MY_ID = 1626
ORDER BY CREATED_AT DESC)
WHERE ROWNUM <= 20
) z
);
谢谢。
这似乎是一个可怕的想法在数据库中动态做。是否有任何理由不能将其存储在应用程序中,并在用户浏览'X'页面或关闭/保存/执行其他触发器操作后更新数据库? – JNK
+1不是针对你的问题,而是针对你的MEGA MAN头像。 – JonH
@JNK:也许这是一个Web应用程序?即不能保证用户将执行触发动作。 –