بعضی عملیات نباید هم‌زمان اجرا شوند. قفل باعث می‌شود session دوم صبر کند (یا زود خطا بگیرد) تا اولی commit یا rollback کند. در PostgreSQL قفل‌ها تا پایان تراکنش نگه داشته می‌شوند و چرخه‌ای از انتظارها به deadlock می‌رسد.