使用select创建表时表锁定

时间:2010-04-19 17:27:42

标签: mysql

使用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提交。

1 个答案:

答案 0 :(得分:1)

从我所看到的,MySQL有时会锁定表,即使在select语句中也是如此。如果您有兴趣,请阅读this以获取更多信息。但似乎说InnoDB表使用行级锁定,而许多其他表类型使用表级锁定。您可以通过输入show table status from dbname来查看所拥有的内容。

希望这有帮助。

更新:当然,说完了,我去测试我的理解,我错了。无论是isam还是innodb,它都会锁定。