JAVA 锁表 1.现在连接的数据库是mysql2.我想用JAVA程序连接MYSQL,执行锁表操作 (LOCK TABLES table_name WRITE )3.然后再执行插入语句(INSERT INTO table_name VALUES('aa'))4.在进行解锁操作(UNLOCK TABLES)5.要求这些操作要在同一个session中...请问用JAVA怎么去做跪求高手详解。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 隔离级别设为READ_COMMITED以上,开一个事务应该就可以达到效果了吧。自己加锁好么? 我是想达到这样的目的:1.表内某一字段为主键.为整形.2.我想求这个主键的和 SUM(PRIMARK KEY).3.当我有一个session执行求和操作时,同时又有另一个session在插入,这时插入新的值也被SUM()了.4.我就是想在求和的把表锁住,不让别的session进行插入操作...请问隔离级别能解决这问题吗? 可以吧。你可以试一下TRANSACTION_SERIALIZABLE,最高级别。是加读锁一直到事务结束的。你试一下吧。 请火龙大哥不要追求我说的细节问题。。那就当那个字段是一般的index吧..请问,如果是一般的索引字段。。我将怎样避免冲突? mySQL默认的事物隔离级别是Repeatable-Read应该就是线程安全的呀(只会出现幻读,很少考虑)... innodb 的事务隔离级别事物隔离级别默认是Repeatable-Read 不会出现:幻象读,不可重复读,脏读。你所担心的问题是sum的时候,新值插入,出现事务内数据不一致问题,这个问题在innodb下开启事务时不会出现。你可以测试一下,建一个表table1,id主键,int;打开两个 mysql命令输入框,step1 :输入框1:start transaction;select sum(id) from table1;--看到没插入数据前的求和step2:输入框2:insert into table1(id) values(10);select * from tabble1;--会看到新插入的数据step3:再切到输入框1:select sum(id) from table1;--看到求和没有变化commit;--提交事务select sum(id) from table1;--看到求和增加10所以你的担心没有必要。不会出现幻象读,不可重复读的 用事务 如果很不幸地引擎是 myisam。 可以考虑在代码里锁 初学 java 数据编程的 简单问题 list分段取值问题 出问题了,帮我解决掉,多谢1~ 请问如何得到调用该类的对象 这个程序语句是什么意思?谢谢! java中文问题:如何从中文编码得到中文? 使用System.in从命令行输入参数,如何…… 将文件转成把bat文件的工具叫什么名字? 关于.class文件的问题 请看这断代码运行后不能响应键盘事件,为什么? 关于jtable的editor 为什么jdesktopPane不显示JLabel信息呢?
我是想达到这样的目的:
1.表内某一字段为主键.为整形.
2.我想求这个主键的和 SUM(PRIMARK KEY).
3.当我有一个session执行求和操作时,同时又有另一个session在插入,这时插入新的值也被SUM()了.
4.我就是想在求和的把表锁住,不让别的session进行插入操作...请问隔离级别能解决这问题吗?
请火龙大哥不要追求我说的细节问题。。
那就当那个字段是一般的index吧..请问,如果是一般的索引字段。。我将怎样避免冲突?
你可以测试一下,建一个表table1,id主键,int;打开两个 mysql命令输入框,step1 :输入框1:
start transaction;
select sum(id) from table1;--看到没插入数据前的求和step2:输入框2:
insert into table1(id) values(10);
select * from tabble1;--会看到新插入的数据step3:再切到输入框1:
select sum(id) from table1;--看到求和没有变化
commit;--提交事务select sum(id) from table1;--看到求和增加10
所以你的担心没有必要。不会出现幻象读,不可重复读的