假设我有一个具有一对多关系的两个表。商店和产品。
我想在一个查询中插入数据(理想)或尽可能少地使用查询。
Straingtforward方法是将shop插入shop表,然后获取最后一条记录的id,并将行插入带有已接收id的products表。不幸的是,这在我的情况下并不好,因为我有高延迟的数据库连接。此外,我限制访问数据库,无法创建存储过程。那么解决方案是什么?
答案 0 :(得分:1)
我不太确定请求是什么。 要将数据插入2个表,必须使用2个插入SQL。 只有一种方法可以确保这两个插入工作正确是通过使用begin tran / commit / rollback并开始try / begin catch。
begin try
begin tran
insert into shop...
insert into product...
commit
end try
begin catch
rollback
end catch
因此,如果发生任何事情,它将回滚,否则,它将提交到表。