使用ariflow在postgresql中插入多个相关表的最佳方式是什么



我正在使用apache airflow创建数据迁移脚本,我偶然发现了这个问题。

我有两张桌子的票和一位乘客。它们看起来像这样:

ticket:
--ticket_info,
--passenger_id
passenger:
--id
--passenger_info

正如您所看到的,它们通过字段ticket.passenger_id=passenger.id相互关联。问题是,我必须先插入乘客,然后用单独的SQL插入passenger_id,然后使用它们插入tickets表。

有更好的方法吗?

如果passenger.id是自动递增的,您可以按如下方式进行:

  • 将other_info插入乘客id
  • 使用last_row函数检索乘客id,或者选择other_info="other_info"的位置
  • 使用刚刚检索到的乘客id插入车票

如果passenger.id不是自动递增的,您可以按如下方式进行:

  • 从乘客中选择max(id(+1并将其存储在id_variable中
  • 插入乘客id变量,other_info
  • 使用id_variable作为passenger_id插入票证

NB:如果表不是自动递增的,您仍然可以使用第一个系统,使用子查询来计算max(id(+1,然后检索它,但这似乎不如第二个系统有效。

相关内容

最新更新