sql - 插入 2 行,每行插入不同的表,其中一行引用作者的主键

标签 sql postgresql insert foreign-key-relationship

大家好 检查这个场景

表 1 列 -> | table_1_id (pkey) |一些列 |评论 |

表 2 列 -> | table_2_id (pkey) | some_other_column | table_1_id (fkey) |评论 |

所有主键都是序列号或自动编号类型。 表 2 的第 3 列是引用表 1 主键的​​ fk。

我想以编程方式(从 C++ 应用程序)将行插入到两者中

我是否必须先插入表 1,然后选择查询条目的主键,然后使用 pkey 结果插入表 2 行?

有没有更有效的方法来处理这个问题?假设使用近 2 个查询?

最佳答案

我建议查看 http://wiki.postgresql.org/wiki/FAQ

该站点是熟悉 PostgreSQL 的有用资源

具体来说,如何获取串行插入的值?

部分

The simplest way is to retrieve the assigned SERIAL value with RETURNING. Using the example table in the previous question, it would look like this:

INSERT INTO person (name) VALUES ('Blaise Pascal') RETURNING id;

您还可以调用 nextval() 并在 INSERT 中使用该值,或者在 INSERT 之后调用 currval()。

关于sql - 插入 2 行,每行插入不同的表,其中一行引用作者的主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4734394/

相关文章:

python - 在 Python (MySQL) 中忽略 %d

mysql连接条件-根据自定义顺序将连接限制为组中的单行

Perl - 连接到 PostgreSQL 数据库 - 找不到合适的套接字

mysql - 如何防止表中的重复记录插入忽略在这里不起作用

java - 将数据从 arraylist 插入表

postgresql - postgres中的累积乘法

iphone - 准备插入语句时 SQLite 内存不足

sql - Oracle 更改表权限不足

sql - 在 SQL Server 中对临时表使用 View 的优点是什么

mysql - MySQL准备语句-如何循环通过