Mysql 使用一条SQL语句的事务

Mysql 使用一条SQL语句的事务,mysql,sql,transactions,Mysql,Sql,Transactions,我正在学习如何通过创建博客进行编程,其中一个要求是每当创建新的博客帖子时,增加帖子类别的“count”列 就目前而言,我必须使用以下语句来完成这项任务: INSERT INTO posts (..., ..., category_id) VALUES (..., ..., 5); UPDATE categories SET count = count + 1 WHERE id = 5 我有没有办法将这两个语句组合成一个SQL语句?如果没有,是否有一种方法可以在我创建一篇包含该类别的新文章时“自

我正在学习如何通过创建博客进行编程,其中一个要求是每当创建新的博客帖子时,增加帖子类别的“count”列

就目前而言,我必须使用以下语句来完成这项任务:

INSERT INTO posts (..., ..., category_id) VALUES (..., ..., 5);
UPDATE categories SET count = count + 1 WHERE id = 5

我有没有办法将这两个语句组合成一个SQL语句?如果没有,是否有一种方法可以在我创建一篇包含该类别的新文章时“自动”增加计数字段

不能合并这些语句,因为它们在不同的表上执行两种不同的操作。但将它们包装在事务中实际上使它们成为一个原子伪单语句:

start transaction;
insert into posts blah blah blah;
update categories blah blah blah;
commit;

您可以使用posts表上的触发器来更新thigns。每当插入或删除记录时,您都会让触发器运行更新查询。

您不能合并这些语句,因为它们在不同的表上执行两种不同的操作。但将它们包装在事务中实际上使它们成为一个原子伪单语句:

start transaction;
insert into posts blah blah blah;
update categories blah blah blah;
commit;

您可以使用posts表上的触发器来更新thigns。每当插入或删除记录时,您都会让触发器运行更新查询。

您可以使用


然后,当您在帖子中插入一行(
插入帖子(…,…,类别id)值(…,…,5);
)时,它将自动增加您的计数。

您可以使用


然后,当您在帖子中插入一行(
插入帖子(…,…,category_id)值(…,…,5);
)时,它会自动增加您的计数。

@Oded对不起-我使用的是MySQL 5.5。20@Oded对不起,我正在使用MySQL 5.5.20