在数据库里插入了几条测试数据,为了方便修改数据在sql语句后加了一个for update;select * from DOCS_NORMAL_REPORT_MASTER for update。并且编辑了一下数据库里的数据。然后从前台执行一个操作,结果前台的操作执行成功了,但是在数据库里查不到,在数据库里运行commit后,新增的数据出现了。再从前台插入一条数据时,前台一直显示正在提交数据。后来找老大问了一下,问题出在数据库里用来测试数据的sql语句上,select * from DOCS_NORMAL_REPORT_MASTER for update这条语句会锁定表,所以导致再次插入数据插不进去,解除锁定表后,数据成功提交。
如果想在数据库里不用sql语句修改数据库数据,而又不锁定表,可以使用select m.*, m.rowid from DOCS_NORMAL_REPORT_REC_MES m ;使用m.rowid