mysql - SQL 查询返回已删除的行

标签 mysql sql hibernate oracle-sqldeveloper

我的数据库中目前有下表,其中包含所述数据:

SUPPORT_USER_ROLES 表:

USER_ID  |   ROLE_ID
1        |   1
1        |   2
2        |   2
*2*      |   *1*

最后一行用“*”标记已被删除,在 SQL Developer 中没有任何迹象。

我现在正在运行以下查询:

SELECT su.USER_ID
     , su.USERNAME
     , sur.ROLE_ID
     , sr.ROLE_NAME 
  FROM support_users su
     , support_users_roles sur
     , support_roles sr 
 WHERE su.USER_ID = sur.USER_ID 
   AND su.IS_ACTIVE != ‘N’ 
   AND sr.ROLE_ID = sur.ROLE_ID 
   AND sr.IS_ACTIVE != ‘N’

它返回以下内容:

{  (USER_ID : 1, ROLE_ID : 1),  
   (USER_ID : 1, ROLE_ID : 2), 
   (USER_ID : 2, ROLE_ID : 1),  
   (USER_ID : 2, ROLE_ID : 2)  }

如你所见,它仍然给我:

(USER_ID : 2, ROLE_ID : 1) 

即使它不再存在于任何地方。

我正在使用 Java、JSF、PrimeFaces、SQL Developer、Hibernate、Weblogic 和 Eclipse IDE。我不确定我是否在这里严重遗漏了某些内容,并且需要在某处刷新/更新某些内容。

我以前没有遇到过这个,所以现在我很困惑:S

非常感谢任何帮助!

最佳答案

了解问题后将评论作为答案

请确保在与运行 delete 语句的程序相同的连接中使用 commit。从应用程序中删除并在 SQL Developer 上提交将不起作用。

现在您可以执行以下两件事之一

(1) 更改代码并运行一次commit,然后确保在每个DML 语句之后使用commit

(2) 一起使用deletecommit。如果数据已经删除,则不会再次删除,并且之后会发生commit。如果不删除,则将被删除并提交。

关于mysql - SQL 查询返回已删除的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38076614/

相关文章:

php - 为什么不更新到数据库?

php - 输入字符串变量,php,mysql

mysql - 子计数作为 mysql 查询中的字段

c# - 使用 Linq to SQL 将 C# 对象与 Varbinary 相互转换

sql - 如果记录作为外部表存在于另一个表中,如何不删除?

java - 即使没有可用的 SessionFactory 实例,Spring @Autowired 如何绑定(bind) SessionFactory 对象

php - #2002 - 服务器没有响应(或者本地 MySQL 服务器的套接字配置不正确)

sql - T-SQL XQuery 用于为每个嵌套元素的每个匹配的 XML 值返回一个结果行

java - Spring MVC 与 Hibernate; getCurrentSession() 时嵌套异常为 java.lang.NullPointerException

java - @PostConstruct 中没有可用的事务实体管理器