
1 est 2013-05-09 13:49:23 +08:00 代码放出来吧。环境也没说清楚?python的啥框架?啥版本? |
2 glei OP 原因大概知道了,应该是多个不同的进程操作数据库后,相互数据是不可见的。我现在在查询前先commit一次,就可以取到当前最新的数据了。 大家有什么好的方法吗? |
3 keakon 2013-05-09 14:18:23 +08:00 每个事务在完成之前,其他事务都是不能看到这个事务里的改动的。 所以应该是你写完数据后没提交=。= |
4 gamexg 2013-05-09 14:28:01 +08:00 我的网不稳定?刚刚回复打不开网页了。。。 自己写的程序? 每个请求结束时都必须提交一次事务的(有些框架会帮您做),不然很有可能你会突然发现关掉服务器再重新启动后之前的数据全部丢失了。。。 关于事务可以看看这个。 http://www.taobaodba.com/html/91_mysql_innodb_transaction_isolation_level.html |
5 gamexg 2013-05-09 14:29:08 +08:00 那个地址介绍并不是很详细,这里有个pg数据库的事务介绍 http://www.pgsqldb.org/pgsqldoc-8.1c/transaction-iso.html |
6 glei OP @keakon A插入数据的地方确实是commit了,因为是另外一个进程B的connection去读这个数据,所以应该是读了旧的数据,因为当前的这个connection不知道数据有变化。所以只有在查询前先commit一下。 |
7 glei OP 改成 提交读(Read Committed):只能读取到已经提交的数据。Oracle等多数数据库默认都是该级别 应该就可以了。。。 |