我有一些SQL查询将在集群环境中执行。我正在尝试使用Postgres建议锁来防止多次执行这些查询。
pg_try_advisory_xact_lock
并检查布尔返回值。true
(获取了锁),则继续执行实际的业务逻辑查询(任意)。false
(另一个实例已经持有独占锁),则不执行任何操作。请注意,我正在使用返回布尔值的非阻塞_try_
变体。如果锁不能立即可用,则其他一些实例已在执行该命令,因此无需执行任何操作。
问题“PostgreSQL IF statement”建议使用IF
嵌入PL / pgSQL DO
子句。如果没有这种额外的复杂性,有没有办法做到这一点?