我正在使用mysql
数据库并且名为timeslots
的表格timeslot
的列为time_slot_id
,name
,openings
,以及appointments
。当我将约会添加到另一个表时,我想要做的是更新 appointments
的值减1。
执行此操作的一种方法是对数据库进行查询并获取appointments
的值,然后向其中添加一个值。但是,只需更新表而不必向数据库发出请求以获取此信息。
我想知道这是否可行;如果是这样,怎么样?
答案 0 :(得分:1)
你可以这样做:
START TRANSACTION;
UPDATE timeslot
SET appointments = appointments + 1
WHERE time_slot_id = ?;
INSERT INTO other_table(..., time_slot_id) VALUES (..., ?);
COMMIT;
答案 1 :(得分:1)
Blaine,触发器是答案,只需创建类似的东西:
CREATE TRIGGER update_timeslots
AFTER INSERT ON my_table_appointments
FOR EACH ROW
BEGIN
UPDATE timeslots
SET appointments = appointments + 1
WHERE timeslots.time_slot_id = NEW.time_slot_id
END;
我希望它有帮助=)