尽管问了这个问题,但它并没有真正适应我希望它如何对我有用,因为我不断收到错误。
我有一个表:customer_orders,我将值插入:
<sql:update var="count">
insert into customer_order (order_date,delivered ,shipping_date,customer_number )
values ( SUBDATE(NOW(), INTERVAL 17 DAY), 1, SUBDATE(NOW(), INTERVAL 14 DAY), <%= session.getAttribute( "username" ) %> );
</sql:update>
现在,此Customer_order的主键称为"订单号",该键
我想采取此订单_number并将其插入表格,我尝试了类似的东西:
<sql:update var="count">
insert into order_item (item_code,value,order_number,quantity)
values( "<%= request.getParameter( "item_code" ) %>", "<%= request.getParameter( "item_price" ) %>",customer_order(order_number),1 );
</sql:update>
,我什至尝试了插入order_number的不同方法,但我无法正常工作。当我创建两个表时,order_number是第二个表中的外键,所以我认为它会抓住值本身,但没有。
我在做什么错?
您可以简单地从交易中的第一个查询中获取最后一个插入的ID,然后按照您的意愿将其插入另一个表中,因此我建议使用这种方法可以帮助您:
<sql:transaction dataSource="${snapshot}" >
<sql:update var="count">
insert into customer_order (order_date,delivered ,shipping_date,customer_number )
values ( SUBDATE(NOW(), INTERVAL 17 DAY), 1, SUBDATE(NOW(), INTERVAL 14 DAY), <%= session.getAttribute( "username" ) %> );
</sql:update>
<sql:query var="las_inserted_id" >
SELECT LAST_INSERT_ID() as last_Id
</sql:query >
/*now you got the last inserted id so that you can simply insert it in your new query as you like*/
<sql:update var="count">
insert into order_item (item_code,value,order_number,quantity)
values( "<%= request.getParameter( "item_code" ) %>", "<%= request.getParameter( "item_price" ) %>",${ las_inserted_id.rows[0].last_Id },1 );
</sql:update>
</sql:transaction>
nb :请尽可能多地尝试您的视图中的SQL逻辑代码!这样可以轻松维护您的应用程序