javascript - 如果项目 postgresql,则将列表插入 SQL
问题描述
我有一种情况,我需要插入多个表,最后一个表将取决于它之前的表以及一些额外的项目列表。我正在将 pg 与 node 和 javascript 一起使用。
表格1:
insert into col1, col2 values (1, 2) return col1 as table1_id
表 2:
insert into col1 col2 values ( table1_id, val1),
(table1_id, val2),
.
.
.
.
(table1_id, val_n)
我在这里看到有些人这样做了,但最后一个表中只有 1 行,但我将有一个项目列表作为 val1....valn... 与 table1 中的第一个插入生成的 id 合并添加到我的列表中。这将是一个关系表,其中包含属于 table1 中记录的项目列表。
任何线索将不胜感激..
谢谢
解决方案
我认为你应该在 postgres 中创建一个“dao”层。一个带有所有参数的 Postgres 函数,并返回你应该在前端拥有的东西。
这个 postgres 函数插入所有你想要的行。
像这样你可以管理你的问题:
CREATE OR REPLACE FUNCTION function_what_i_want(val1 integer, val2 integer, my_argument integer[])
RETURNS my_schema_and_table[] AS
$BODY$
DECLARE
result my_schema_and_table[];
BEGIN
insert into table1(col1,col2,col3) VALUES (nextval('seq1'),val1, val2);
insert into table2(c1,c2)
select currval('seq1'),m.c2
from unnest(my_argument) m(c2);
END;
我不知道你的项目。如果您不想在此表上搜索,也许最好将此列表存储在 json 中。
推荐阅读
- c# - 如何仅使用以下示例在 LINQ 中成功使用 CopyToDataTable() 方法?
- react-native - 我如何在 react-native-zoom-us 中获得会议持续时间
- oracle - Oracle“DBMS_METADATA.GET_DDL”使用问题
- flutter - 如何在颤动中将 ip Camera Stream 直接流式传输到 Youtube
- mysql - Mysql - 加入类似的查询
- python - 用非独立参数实现构造函数的 Pythonic 方式是什么?
- vba - 如何将 FileSytemObject 添加到我的 VBA 以创建 Unicode 文本平面文件?
- php - 如何使用 PHP 和 Google Drive API 获取基于所有者的所有文件夹和文件
- python - 如何将一串二进制数转换为二进制数?
- api - Shopware 5:API 订单数据中的发布日期格式错误