一次插入很多表

Inserting into lots of tables at once

我正在使用 postgreSQL,我想插入大约 5 个不同的 table,其中另一个 table 需要插入 table 的返回数据,并且等等等等。例如。如果我将数据插入 table A,我需要返回 id 插入 table B,以及 table C 的返回 id,等等。在一些 tables,我有时需要插入多行。

我打算将整个事情包装成一个单一的函数,而不是有 5 个不同的查询,因为我希望如果一个插入失败,整个事情就会失败。并且有单独的查询不允许这样做。

现在,我知道如何做到这一点,但我的问题是,考虑到我有 1000 多个用户,这样做是否安全,或者这种方法是否存在任何问题。

使用一个函数会很好地工作,就像 运行 单个事务中的多个 INSERT 语句或使用 INSERT INTO ... SELECT ... RETURNING ....

的 CTE 堆栈一样