不需使用workmutex,mysql对表级进行加锁解锁
加解锁时相对于连接而言的,而不是针对线程。
以下所述的线程均是发起一个单独连接的线程。在多线程的mysql程序中,最好是一个线程发起一个链接,否则有隐患。

多线程共享一个连接的话,两个线程同时去操作一个表,会有异常。那么能否在多个连接上同时操作同一张数据表?
我遇到这样一个问题:
在数据库上建立多个连接,所有连接都更新同一张数据库表。其中,不同的连接是在不同的进程或线程中完成的,执行的操作是 INSERT。
这样的操作是否行得通?

------解决方案--------------------------------------------------------
可以执行,MYSQL会自动加锁控制

refer to http://www.myexception.cn/mysql/206922.html

经过测试可以。那就没必要手动表锁了,如下。

锁定表Bind 
LOCK TABLES Bind READ;
之后所有线程(包括执行加锁的线程本身)均可读取表Bind ,但均不能写入表Bind

锁定表Bind 
LOCK TABLES Bind WRITE;
之后只有本线程可读取和写入表Bind ,其他不能读也不能写入表Bind (使用select * from t 测试之)

解除本线程对所有表加的所有锁,无法解除其他线程加的锁;线程没有加锁退出时,其所加锁自动解除。
UNLOCK TABLES

  string sSql="LOCK TABLES Bind WRITE";if(!pDB->exec(sSql)){DBGMYSQL("%s failed",sSql.c_str());}else{DBGMYSQL("%s success",sSql.c_str());}

查看当前所有连接
 SHOW PROCESSLIST;
获取表的记录条数
SELECT COUNT(Cur) AS num FROM DevLog_Value

http://dev.mysql.com/doc/refman/5.0/en/lock-tables.html

转载于:https://www.cnblogs.com/-song/archive/2013/06/13/3331807.html

mysql LOCK TABLES相关推荐

  1. mysql数据库备份提示1577_mysqldump备份数据库时出现when using LOCK TABLES的提示

    下面是对事务表使用LOCK TABLES的说明:在尝试锁定表之前,LOCK TABLES不是事务安全型的,会隐含地提交所有活性事务.同时,开始一项事务(例如,使用START TRANSACTION), ...

  2. lock字段mysql_MySQL的lock tables和unlock tables的用法(转载)

    早就听说lock tables和unlock tables这两个命令,从字面也大体知道,前者的作用是锁定表,后者的作用是解除锁定.但是具体如何用,怎么用,不太清楚.今天详细研究了下,总算搞明白了2者的 ...

  3. LOCK TABLES

    http://blog.csdn.net/zyz511919766/article/details/16342003 http://blog.csdn.net/zyz511919766/article ...

  4. lock mysql unlock_MySQL中的lock tables和unlock tables

    MySQL允许客户端会话显式地获取表锁,以便与其他会话协作访问表,或者防止其他会话在其需要独占表时使用表.这个能力就是通过LOCK TABLES和UNLOCK TABLES实现的. LOCK TABL ...

  5. mysql 1100_错误代码:1100 Table 't_depart_info' was not locked with LOCK TABLES的解决方法

    一步步来分析错误代码的生成原因,大家要有耐心哦. 第一步,错误描述 1 queries executed, 0 success, 1 errors, 0 warnings 查询:insert into ...

  6. mysql中lock tables与unlock tables(锁表/解锁)

    在某个地方看到有个例子,具体描述类似如下:商店现在某商品只有1件库存,然后A与B在网上进行下订,A与B几乎同时(或许也就差几毫秒,A比B快那么一点点)进行. 很明显是只有A才能成功下单的,B则会收到库 ...

  7. FLUSH TABLES WITH READ LOCK 和 LOCK TABLES

    今天在解决数据库同步异常的时候用到了flush tables with read lock 这个命令,于是顺便就学习了下锁表的相关知识. 1.FLUSH TABLES WITH READ LOCK 这 ...

  8. FLUSH TABLES WITH READ LOCK 和 LOCK TABLES比较

    1.FLUSH TABLES WITH READ LOCK 这个命令是全局读锁定,执行了命令之后所有库所有表都被锁定只读.一般都是用在数据库联机备份,这个时候数据库的写操作将被阻塞,读操作顺利进行.解 ...

  9. mysqldump: Got error: 1016: Can't open file: './xxx.frm' (errno: 24) when using LOCK TABLES

    mysqldump导出备份数据库的时候出现下面的错误: mysqldump: Got error: 1016: Can't open file: './bdm0140379_db/lady_forum ...

最新文章

  1. python qq签到_Python开发qq批量登陆
  2. 读javascript高级程序设计13-JSON
  3. Spring Boot html页面解析之jsoup
  4. HDU杭电2066 - 一个人的旅行(Dijkstra算法)
  5. 十荟团创始人发表内部信,公布下半场业务的全面升级规划
  6. Java的Stack类
  7. train problem I (栈水题)
  8. Java-创建图片验证码descriptor
  9. java微调器_java-更改微调器标题栏样式
  10. 学c语言和51单片机的作业,《手把手教你学51单片机(C语言版)》例程和源码
  11. 车联网的麻烦和便利一样多 BAT们要治这种尴尬症
  12. MATLAB对数坐标图和统计图(semilogy/loglog)
  13. 筋膜枪方案-无刷马达方波运用1
  14. python 微信授权 昵称乱码解决
  15. 入坑数据分析的几个问题——学习、面试、作报告
  16. ExifTool 抽取、修改Image tag 信息
  17. 微信号码开通状态检测
  18. 功率谱(PS)和功率谱密度(PSD)是否一样、谱估计谱图纵轴数值为什么为负
  19. 18北大考研经验贴汇总
  20. 如何选择适合自己的吉他弦(下)

热门文章

  1. JAVA中的字符串操作
  2. JavaScript之引用类型介绍
  3. 随心篇第九期:我不愿一无所有
  4. Android拍照流程
  5. FreeBSD基本命令[转]
  6. Jean Hsu:当女软件工程师的那些好处
  7. 青岛三网融合试点:三屏合一切入
  8. ORACLE GoldenGate 配置
  9. RAC+单实例DATAGUARD 配置
  10. iOS App启动流程