【发布时间】:2013-05-29 21:24:54
【问题描述】:
我有一张桌子
CREATE TABLE `uli` (
`id` int(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
该表应始终在一行中包含一个值。但它可以经常改变。我想做一个选择,为其他连接锁定表,更新一个值并解锁。 例如,下面的代码效果很好:
LOCK TABLES uli WRITE;
SELECT * FROM uli;
UPDATE uli SET id=id+1;
UNLOCK TABLES;
当第一个连接没有解锁时,所有其他连接都会等待,只有解锁后才能看到新的值。这正是我想要的。它是否存在一些更优雅的解决方案?使用 MyIsam 或 Innodb 表是否重要?
【问题讨论】:
标签: mysql concurrency locking innodb myisam