[英]MYSQL : multiple table insert with foreign key relationship
订单表
order_id,
parent_order_id,
customer_id,
payment_mode,
price ,
shipping_price,
billing_address_id,
shipping_address_id,
create_TS,
update_TS
订购项目
order_id,
order_item_id,
pos_code,
quantity,
unit_price,
shipping_price,
pickup_date,
create_TS,
update_TS,
business_id,
item_id,
delivery_id,
workflow_id,
订单调整表
order_adjustment_id,
order_item_id,
offer_id,
discount_value,
create_ts,
update_ts
下订单后,我将数据插入这3个表以及其他一些表中。 所有这些都发生在交易中。 当前,该应用程序使用JDBC与MYSQL DB进行通信。
插入顺序为1.订单表。 2. OrderItems表3. Order_Adjustments表
订单ID是订单商品表中的外键,而订单商品ID是订单调整表中的外键。
当客户下订单时,我会根据商店将父订单分为子订单。 例如,如果购物车包含来自store1的item1和item2和来自store2的item4
单个购物车将分为2个单独的订单(由于物流原因)
所以现在的问题是
我需要知道订单项表的相应订单ID,以及订单调整表的类似订单项ID。
因此,我分别触发查询而不是批量插入。 甚至有可能使用jdbc实现类似的功能吗?
您必须首先将查询激发到1. Orders表中。
基于它从表Orders表中获取MAX(order_id),然后将其用作其他子表的外键。
您也可以像这样获取ID。 它将返回数据库为您的订单创建的ID。
p = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
在executeUpdate之后,您可以获得这样的ID。
ResultSet rs = p.getGeneratedKeys();
rs.getInt(1)
现在您可以获取ID并将其用作FK
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.