是否可以在不查询数据库的情况下增加数据库值?

时间:2014-01-09 03:26:09

标签: mysql database

我正在使用mysql数据库并且名为timeslots的表格timeslot的列为time_slot_idnameopenings,以及appointments。当我将约会添加到另一个表时,我想要做的是更新 appointments的值减1。

执行此操作的一种方法是对数据库进行查询并获取appointments的值,然后向其中添加一个值。但是,只需更新表而不必向数据库发出请求以获取此信息。

我想知道这是否可行;如果是这样,怎么样?

2 个答案:

答案 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;

我希望它有帮助=)