我需要一个 sql 语句,在一个数据库表中插入一个新行,并根据某些条件更新另一个数据库表中的现有行。
有没有办法做到这一点?在一个表中插入一行并在一个sql语句中更新另一个数据库表中的一行?
提前致谢!
我需要一个 sql 语句,在一个数据库表中插入一个新行,并根据某些条件更新另一个数据库表中的现有行。
有没有办法做到这一点?在一个表中插入一行并在一个sql语句中更新另一个数据库表中的一行?
提前致谢!
是的,它们被称为Transactions,并通过以下方式实现START TRANSACTION and COMMIT/ROLLBACK
:
START TRANSACTION;
INSERT INTO ...
UPDATE table2 SET name='TOTO' WHERE type=1;
COMMIT;
编辑
这实际上不是一个SQL 查询,但操作是原子完成的 - 我认为这就是您所需要的。
单个 SQL 语句允许您更新一个表,而不是多个;如果该语句是一个,MERGE
那么您可以指定插入/更新/删除操作,但仍然只针对同一个目标表。
如果您只想要一致性,请使用事务;在提交事务之前,外部世界看不到其中的更改。
如果您希望单个更新(您无法控制)导致协调插入,on update
请在正在更新的表中使用触发器。触发器会将适当的行插入到其他表中。
您可以Trigger
在插入第一个表时使用更新第二个表
是的,可以使用存储过程。
看这个:存储过程