是否可以在 PostgreSQL 的 INSERT 语句中为特定值创建锁?
可以说,我有这张桌子:
CREATE TABLE IF NOT EXISTS bookings (
bookingID SERIAL PRIMARY KEY,
tableID integer REFERENCES tables ON DELETE CASCADE,
startTime timestamp NOT NULL,
endTime timestamp NOT NULL,
);
Run Code Online (Sandbox Code Playgroud)
现在,如果启动了一个带有 INSERT 的事务块,我可以在事务时间内为具有相同 tableID 和相同日期的所有其他 INSERTS 创建锁吗?
因此,同一 tableID 的第二次预订必须等待第一个预订完成。之后可以再次检查,是否仍然可以插入。所以它基本上是 INSERTS 中特定值的 ROW 锁。
该程序是用 Java 编写的,但由于瓶颈,我不想使用同步块。
谢谢您的帮助