需要一个sql语句来同时进行更新和插入

时间:2011-10-07 09:23:29

标签: sql sql-update sql-insert

我需要一个sql语句,在一个数据库表中插入一个新行,并根据某些条件更新另一个数据库表中的现有行。

有办法做到这一点吗?在一个表中插入行并在一个sql语句中更新另一个数据库表中的行?

提前致谢!

4 个答案:

答案 0 :(得分:4)

是的,它们被称为Transactions,并使用START TRANSACTION and COMMIT/ROLLBACK实现,例如:

START TRANSACTION;
  INSERT INTO ...
  UPDATE table2 SET name='TOTO' WHERE type=1;
COMMIT;

修改

这实际上并不是一个 SQL查询,但操作是以原子方式完成的 - 我认为这就是你需要的。

答案 1 :(得分:3)

单个SQL语句允许您更新一个表,而不是几个;如果该语句是MERGE,那么您可以指定插入/更新/删除操作,但仍然只针对同一个目标表。

如果您只想要一致性,请使用交易;在提交事务之前,其中的更改对外界是不可见的。

如果您希望单个更新(无法控制)导致协调插入,请在要更新的表中使用on update触发器。触发器会将适当的行插入其他表中。

答案 2 :(得分:1)

您可以使用Trigger更新第一个表格的第二个表格

答案 3 :(得分:1)

是的,可以使用存储过程。

请注意:Stored procedures