插入 2 行,每行插入不同的表,其中一行引用另一行的主键
大家好 查看此场景
表 1 列 -> |表_1_id(pkey)|一些_列 |评论 |
表2栏-> |表_2_id(pkey)|一些其他列 |表_1_id (fkey) |评论 |
所有主键都是序列号或自动编号类型。 表 2 中的第 3 列是引用表 1 的主键的 fk。
我想以编程方式(从 C++ 应用程序)将行插入到两个表中,
我是否必须插入表一,然后 SELECT 查询条目的主键,然后插入带有 pkey 结果的表 2 行?
有没有更有效的方法来处理这个问题?比如说使用几乎 2 个查询?
Hello folks
Checkout this scenario
Table 1 columns -> | table_1_id (pkey) | some_column | comments |
Table 2 columns -> | table_2_id (pkey) | some_other_column | table_1_id (fkey) | comments |
All primary keys are of type serial or auto number.
The 3rd column on Table 2 is an fk that references Table 1's primary key.
I would like to insert rows into both programmaticaly (from a c++ app)
Do i have to insert to table one then SELECT-query the entry's primary key then insert the Table 2 row with the pkey result?
Is there a more efficient way of handling this? Say using almost 2 queries?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我建议查看 http://wiki.postgresql.org/wiki/FAQ
该网站是熟悉 PostgreSQL 的有用资源
具体来说,如何获取 SERIAL 插入的值?部分
您还可以调用 nextval() 并在 INSERT 中使用该值,或者在 INSERT 之后调用 currval()。
I would suggest looking http://wiki.postgresql.org/wiki/FAQ
The site is a useful resource to go through to get familiar with PostgreSQL
Specifically, the section How do I get the value of a SERIAL insert?
You can also call nextval() and use that value in the INSERT, or call currval() after the INSERT.
如果您的应用程序中不需要 table_1_id 值,则可以完全跳过检索它:
If you don't need the table_1_id value in your application, you can skip retrieving it completely: