如何在MySQL里面实现互斥的访问?如何保证select/update的原子操作?使用lock tables和unlock tables的效果如何? SELECT GET_LOCK(LockName, 5);//5代表超时时间进行操作;SELECT RELEASE_LOCK(LockName); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是的,虽然GET_LOCK并不直接锁定一个表或者记录,但很多情况下可以模拟锁定指定的记录例如:要select/update时,一般需要一个关键字段的值,假设为 "white",此时就给LockName取名为改字段的值SELECT GET_LOCK('white', 5);SELECT * FROM tbl_name WHERE name='white';或者UPDATE tbl_name SET col1='new value' WHERE name='white';其它处理SELECT RELEASE_LOCK('white');此时其它用户(也可以理解为连接mysql的其它线程)要访问name='white'的记录做相同或不同的操作时,也按上述步骤即可实现模拟锁定的效果,当这些用户再次SELECT GET_LOCK('white', 5)时,会表现为阻塞状态,直到第一个GET_LOCK的用户释放或者超时(5秒) 上海期货回调函数OnRtnDepthMarketData数据插入mysql的时候报错 mysql游标问题 PostgreSQL不能创建名为user的表吗? 如何将8M的数据库,编码为UTF8转换成GBK ? 如何在mysql加上一个约束 加单引号值(数值型,文字型,日期型)与不加单引号的值的区别是什么?? MYSQL有没有好像SQL server 一样的管理工具 mysql修改列属性 mysql两个表之间的数据复制 将sqlserver转换成mysql PHPn层方案挑战J2EE,.net 有兴趣的朋友来看看.. 招聘JSP+Postgresql程序员,上海吉彦信息技术有限公司
要select/update时,一般需要一个关键字段的值,假设为 "white",此时就给LockName取名为改字段的值
SELECT GET_LOCK('white', 5);SELECT * FROM tbl_name WHERE name='white';
或者
UPDATE tbl_name SET col1='new value' WHERE name='white';其它处理SELECT RELEASE_LOCK('white');此时其它用户(也可以理解为连接mysql的其它线程)要访问name='white'的记录做相同或不同的操作时,也按上述步骤即可实现模拟锁定的效果,当这些用户再次SELECT GET_LOCK('white', 5)时,会表现为阻塞状态,直到第一个GET_LOCK的用户释放或者超时(5秒)