continew-admin icon indicating copy to clipboard operation
continew-admin copied to clipboard

[Bug] UserPasswordHistoryMapper.xml 中的sql 語法不兼容postgre

Open sunscorch opened this issue 1 year ago • 5 comments

请您确认

  • [X] 尝试最新 dev 分支代码,仍有相同问题
  • [X] 阅读使用指南
  • [X] 查找常见问题
  • [X] 根据报错信息(自行翻译英文)百度或 Google 一下
  • [X] 搜索是否有其他人提交过类似的 Issue,如果对应 Issue 尚未解决,您可以先订阅关注该 Issue(为了方便后来者查找问题解决方法,请尽量避免创建重复的 Issue)
  • [X] 阅读源码并在 IDE 中进行断点调试

Bug 描述

UserPasswordHistoryMapper.xml 中的sql 語法不兼容postgre. 應當考慮使用通用的sql語句:

    <delete id="deleteExpired">
        DELETE FROM sys_user_password_history t1
        WHERE t1.id NOT IN (
         SELECT id
         FROM (
              SELECT id
              FROM sys_user_password_history
               WHERE user_id = #{userId}
               ORDER BY create_time DESC
              LIMIT #{count}
        ) AS recent
        );
    </delete>

复现步骤

嘗試創建一個新用戶 然後修改密碼

预期结果

no error

环境信息

ContiNew Admin version(s):dev

额外补充

No response

sunscorch avatar Dec 30 '24 09:12 sunscorch

大佬,你测试过此 SQL 吗?我看着它和我以前写的一样呢,如果是一样的,那 SQL 有缺陷。 image

Charles7c avatar Dec 30 '24 12:12 Charles7c

大佬,你测试过此 SQL 吗?我看着它和我以前写的一样呢,如果是一样的,那 SQL 有缺陷。 image

大佬感谢回复 看起来是一样的 不确定 这个sql 有什么问题, 我先使用他workaround表

sunscorch avatar Dec 30 '24 13:12 sunscorch

我对 pgsql 不那么熟,最近也没需求,你研究下吧,有结论欢迎 PR 下。

Charles7c avatar Dec 30 '24 13:12 Charles7c

大佬不太确定 你为什么要改原来的sql 可否给个有问题的例子

sunscorch avatar Dec 30 '24 14:12 sunscorch

没印象了,不是 SQL 报错就是删数据有遗漏,忘记哪一点了。你可以准备点测试数据,还原原来的 SQL 代码,测试一下 SQL,pgsql 没问题就先用着去了。

Charles7c avatar Dec 31 '24 03:12 Charles7c