sql >> Base de Datos >  >> RDS >> Mysql

¿Cuál es el propósito de SELECCIONAR ... *PARA ACTUALIZAR*?

http://dev.mysql.com/doc /refman/5.0/en/innodb-locking-reads.html

Tiene que ver con bloquear la tabla en transacciones. Digamos que tienes lo siguiente:

START TRANSACTION;
SELECT .. FOR UPDATE;
UPDATE .... ;
COMMIT;

después de que se ejecuta la declaración SELECT, si tiene otro SELECT de un usuario diferente, no se ejecutará hasta que su primera transacción llegue a la línea COMMIT.

También tenga en cuenta que FOR UPDATE fuera de una transacción no tiene sentido.