-1

私はテーブルを持っています

CREATE TABLE `uli` (
  `id` int(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

テーブルには、常に 1 つの行に 1 つの値が含まれます。しかし、それは頻繁に変更される可能性があります。選択を行い、他の接続のためにテーブルをロックし、値を更新してロックを解除したいと思います。たとえば、次のコードはうまく機能します。

LOCK TABLES uli WRITE;
SELECT * FROM uli;
UPDATE uli SET id=id+1;
UNLOCK TABLES;

最初の接続はロック解除されませんが、他のすべての接続は待機し、ロック解除後にのみ新しい値が表示されます。それがまさに私が欲しいものです。よりエレガントなソリューションが存在しますか?MyIsam または Innodb テーブルを使用することは重要ですか?

4

1 に答える 1