Manual del usuario de PostgreSQL | ||
---|---|---|
Anterior | Multi-Version Concurrency Control (Control de la Concurrencia Multi Versi�n) | Siguiente |
Ya que las lecturas en Postgres no bloquean los datos, sin tener en cuenta el nivel de aislamiento de la transacci�n, los datos le�dos por una transacci�n pueden ser sobreescritos por otra. En otras palabras, si una fila es devuelta por SELECT esto no significa que esta fila realmente exista en el momento en que se devolvi� (un tiempo despu�s de que la declaraci�n o la transacci�n comenzaran, por ejemplo) ni que la fila est� protegida de borrados o actualizaciones por la transacci�n concurrente antes de que �sta se lleve a cabo o se pare.
Para asegurarse de la existencia de una fila y protegerla contra actualizaciones concurrentes, deber�a usar SELECT FOR UPDATE o una declaraci�n de tipo LOCK TABLE m�s apropiada. Esto debe tenerse en cuenta cuando desde otros entornos se est�n portando aplicaciones hacia Postgres utilizando el modo serializable.
Antes de la versi�n 6.5 Postgres usaba bloqueos de lectura, as� que la consideraci�n anterior es tambi�n v�lida cuando actualice a 6.5 (o superior) desde versiones anteriores de Postgres. |