Sql 插入两行,每行插入不同的表,其中一行引用另一行';s主键
大家好 检查此场景 表1列->表1 id(pkey)|部分列|注释| 表2列->|表2_id(pkey)|一些_其他_列|表1_id(fkey)|注释| 所有主键均为序列号或自动编号类型。 表2的第3列是引用表1主键的fk 我想将两行插入(从C++应用程序) 我是否必须插入表1,然后选择查询条目的主键,然后插入表2中包含pkey结果的行 有没有更有效的处理方法?比如说使用几乎两个查询?我建议 该网站是熟悉PostgreSQL的有用资源 具体来说,部分如何获取串行插入的值? 最简单的方法是检索 已分配序列值并返回。 使用中的示例表 上一个问题,看起来像 这: 插入到person(name)值中 ('Blaise Pascal')返回idSql 插入两行,每行插入不同的表,其中一行引用另一行';s主键,sql,postgresql,insert,foreign-key-relationship,Sql,Postgresql,Insert,Foreign Key Relationship,大家好 检查此场景 表1列->表1 id(pkey)|部分列|注释| 表2列->|表2_id(pkey)|一些_其他_列|表1_id(fkey)|注释| 所有主键均为序列号或自动编号类型。 表2的第3列是引用表1主键的fk 我想将两行插入(从C++应用程序) 我是否必须插入表1,然后选择查询条目的主键,然后插入表2中包含pkey结果的行 有没有更有效的处理方法?比如说使用几乎两个查询?我建议 该网站是熟悉PostgreSQL的有用资源 具体来说,部分如何获取串行插入的值? 最简单的方法是检索 已
您还可以调用nextval()并在插入中使用该值,或者在插入后调用currval() 如果应用程序中不需要表\u 1\u id值,可以完全跳过检索:
INSERT INTO table_1(cols...) VALUES(vals...)
INSERT INTO table_2(table_1_id, cols...) VALUES(currval('table_1_table_1_id_seq'), vals...)
我同意:使用
返回是最安全的方法。