我有一张桌子
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 表是否重要?