MySQL C++开发,手动删除数据,程序中还能查到,如何解决。 多做一次查询也是能查到该数据。数据库引擎使用的是InnoDB,手动删除之后,也commit了。猜测是因为缓存。但是同事全java开发,也是使用的InnoDB,没有出现这样的情况 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的程序的insert和select如果是在一个事务中而且设置的事务级别是可重复读就是正常的 业务处理是这样的。先再程序中调用MySQL接口,插入一条数据,然后通过业务处理,再commit。我在shell中执行mysql -p -u -h -D连接到数据库中,执行删除操作,删除这条数据。再在程序中插入一条相同的数据。结果提示数据已存在,拒绝再次插入该数据。虽然走的是同一段代码,但是是分两次进入,属于不同的事务。应该是异常情况。 业务处理是这样的。先再程序中调用MySQL接口,插入一条数据,然后通过业务处理,再commit。我在shell中执行mysql -p -u -h -D连接到数据库中,执行删除操作,删除这条数据。再在程序中插入一条相同的数据。结果提示数据已存在,拒绝再次插入该数据。虽然走的是同一段代码,但是是分两次进入,属于不同的事务。应该是异常情况。你第一次程序调用的时候插入语句后有启事务么?事务有没有提交? 注意到了这样一点:多做一次查询也是能查到该数据。数据库引擎使用的是InnoDB,手动删除之后,也commit了。猜测是因为缓存。但是同事全java开发,也是使用的InnoDB,没有出现这样的情况某些java的provider是存在本地cache的,例如 eclipselink、hibernate。通常这些应用在EntityManager中会缓存对象数据。如果你仅仅是修改或是删除操作,应用层面的缓存是没有变化的,因此还能查到。当然了,这是一种提高访问效率的做法。两种处理方法,在应用层程序中关闭缓存或者通过应用层删除数据。当然了,重启应用,肯定也没有问题。 mysqlreport结果报告 远程链接数据库 编译mysql出错:Can't create/write to file '/usr/local/mysql/var/mysql/db.MYI' (Errcod 找出表里4个字段重复的值 在线急等,如何从数据库中直接取出最小值? 关于mysql数据库乱码问题 phpmyadmin 的一个问题 请教mysql所用的数据类型 使用longblob 存储图片出现的问题 如何获取left join后,符合条件的有多少条 多表JOIN优化问题 mysql 主主复制漏少量数据
执行mysql -p -u -h -D连接到数据库中,执行删除操作,删除这条数据。再在程序中插入一条相同的数据。结果
提示数据已存在,拒绝再次插入该数据。虽然走的是同一段代码,但是是分两次进入,属于不同的事务。应该是
异常情况。
执行mysql -p -u -h -D连接到数据库中,执行删除操作,删除这条数据。再在程序中插入一条相同的数据。结果
提示数据已存在,拒绝再次插入该数据。虽然走的是同一段代码,但是是分两次进入,属于不同的事务。应该是
异常情况。你第一次程序调用的时候插入语句后有启事务么?事务有没有提交?