我有以下表格结构。
reservation: (InnoDB)
------------------------------------------
id INT,
date DATE,
item_id INT,
slot VARCHAR(50);
PRIMARY KEY(id), UNIQUE KEY(item_id,date).
现在我正在尝试在事务内的保留表上使用 SELECT.....FOR UPDATE 来锁定特定 item_id 的日期范围内的特定行(例如:2012-06-15 到 2012-06-16)。
SELECT availability FROM reservation WHERE item_id={$item_id} AND (date>='{$to_date}' AND date<='{$from_date}') FOR UPDATE
现在,当我使用上述语句时,它会阻止特定 item_id 的所有行,甚至超出日期范围。我也在使用这个唯一键(item_id,date)。
如何仅锁定特定 item_id 的特定日期范围?
问候,
拉维。