问题
Postgres的select ... for update
可以锁住一行,但是想找一个可以带上purpose的锁住一行,purpose不同可以获得不同的锁。
方案
然而并没有,但找到一个AdvisoryLocks。
AdvisoryLocks可以根据不同的key,获得不同的锁。但是AdvisoryLocks的key只能是一个bigint
或者两个int
,不能传入字符串,就不能很明确的锁住一行。
Google了一下,大专栏 Postgres Advisory Locks3845/how-do-i-use-string-as-a-key-to-postgresql-advisory-lock" target="_blank" rel="external noopener noreferrer">这篇文章