mysql在这种情况下使用一个查询进行选择和更新?
问题描述:
我可以一起选择和更新吗?而不是使用2个查询,我可以只使用一个?mysql在这种情况下使用一个查询进行选择和更新?
SELECT data FROM log limit 1
update log SET `data` = $now where `id` = 1
有什么想法?
答
锁定表以防止其他用户更新表。
LOCK TABLES data;
SELECT data FROM log WHERE id = 1;
// fetch the result
UPDATE log SET data = NOW() WHERE id = 1;
UNLOCK TABLES;
你想完成什么?这种操作的结果是什么? –
@KamilG。我想只允许一个用户阅读这个日期,第一个打开页面的人,第一个用户应该更新日期。一个功能每5分钟可用,同时不能为2个用户提供服务。这样,在MyISAM引擎中一起选择和更新我可以做我想做的,不是吗? –
你不能在一个查询中执行'SELECT'和'UPDATE'。使用事务来防止其他人在查询之间更改数据库。 – Barmar