[转帖]MySQL错误ERROR 1100(HY000):表't1'未锁定在LOCK TABLES中_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 1756 | 回复: 0   主题: [转帖]MySQL错误ERROR 1100(HY000):表't1'未锁定在LOCK TABLES中        下一篇 
shpagaged
注册用户
等级:新兵
经验:66
发帖:2
精华:0
注册:2016-9-26
状态:离线
发送短消息息给shpagaged 加好友    发送短消息息给shpagaged 发消息
发表于: IP:您无权察看 2018-8-20 11:27:18 | [全部帖] [楼主帖] 楼主

mysql>从测试中显示打开的表; 

+ ---------- + ------- + -------- + ------------- +


| 数据库| 表| In_use | Name_locked | 

+ ---------- + ------- + -------- + ------------- +


| 测试| t | 1 | 0 | 

| 测试| t1 | 0 | 0 | 

+ ---------- + ------- + -------- + ------------- +


2行(0.00秒) )

mysql> select * from t;
+ ------ + ------ +


| id | 名称| 

+ ------ + ------ +
| 1 | aaaa |
| 2 | bbb |
| 3 | ddd |
| 4 | ttt |
+ ------ + ------ +


4行集(0.00秒)

mysql> select * From t1;


ERROR 1100(HY000):表't1'未锁定与LOCK TABLES 

mysql> update t set name ='a';


错误1099(HY000):表't'被锁定,并且无法更新

mysql> insert into t1 values(1,'aa');


ERROR 1100(HY000):表't1'未锁定与LOCK TABLES 

mysql> delete from t1;


ERROR 1100(HY000):表't1'未锁定在LOCK TABLES中

MySQL > insert into t values(5,'e');


ERROR 1099(HY000):表't'被锁定,并且无法更新

mysql > update t set name ='c';


错误1099(HY000):表't'被锁定,并且无法
从t 更新mysql> delete; 
错误1099(HY000):表't'被锁定,并且无法更新

在打开一个sesion2:

mysql> select * from t;
+ ------ + ------ +


| id | 名称| 

+ ------ + ------ +
| 1 | aaaa |
| 2 | bbb |
| 3 | ddd |
| 4 | ttt |
+ ------ + ------ +


4行集(0.00秒)

mysql> select * From t1;
+ ------ + ------ +


| id | 名称| 

+ ------ + ------ +
| 1 | a |
| 2 | b |
| 3 | d |
| 3 | d |
+ ------ + ------ +


4行集(0.00秒)

mysql> delete from t1 where id = 3;


查询OK,2行受影响(0.03秒)

mysql> select * From t1;
+ ------ + ------ +


| id | 名称| 

 + ------ + ------ +
| 1 | a |
| 2 | b |
+ ------ + ------ +
mysql> insert into t1 values(3,'d');


查询OK,1行受影响(0.03秒)
2行集(0.00秒)

mysql> insert into t values(3,'d');


卡住

mysql> delete from t;


卡住

update t set name ='a';


卡住

结论:通常是session1因为某个进程锁了T,在没有释放锁时,想要访问另外一个T1,就会报错ERROR 1100(HY000):表't1'没有锁定与LOCK TABLES

在mysql中,如果某个会话使用lock table tname read |写锁定某个表,

那么同一个会话中只能对锁定的表进行查询操作,不能对锁定的表进行更新插入删除,对不允许没有锁定的表进行查询更新插入删除,

其他会话对锁定的表只能查询,不能进行更新,插入,删除操作

其他会议对没有锁定的表仍然可以进行选择,更新,插入,删除操作




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论