使用mysql 5.0.18版 我正在创建一个表TT, 客户1 set autocommit = false; 开始交易 从PT创建表TT select *;
PT有两列pk bigint not null,名称varchar(20)
客户2 set autocommit = false 开始交易 插入PT值(123,'text'); 在PT中插入行时,它正在等待表Client 1提交。我无法插入行。为什么?是否可以插入行而无需等待客户端1提交。
答案 0 :(得分:1)
从我所看到的,MySQL有时会锁定表,即使在select语句中也是如此。如果您有兴趣,请阅读this以获取更多信息。但似乎说InnoDB表使用行级锁定,而许多其他表类型使用表级锁定。您可以通过输入show table status from dbname
来查看所拥有的内容。
希望这有帮助。
更新:当然,说完了,我去测试我的理解,我错了。无论是isam还是innodb,它都会锁定。