我正在使用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,然后检索它,但这似乎不如第二个系统有效。