オンライン小売業者のWebサイトの注文情報を格納するOrders(Id、FK_Customer_Id、Comments、PaymentMethod、DeliverTime)テーブルがあります。注文の詳細を格納するためのテーブル:Order_Items(Id、FK_Order_Id、FK_Product_Id、Quantity)。NodeJSでMySQLのOrdersテーブルとOrder Itemsテーブルに挿入する方法
一度ユーザーが注文を送信すると、情報を2つのテーブルに保存する必要がありますが、並行性の問題を解決する方法はわかりません。
私はまずOrdersテーブルに挿入し、Order_Idを取得し、このIDをOrder_Itemsテーブルに挿入する必要があるためです。私は "SELECT LAST_INSERT_ID()OrderId"を使用しようとします。しかし、私が注文に挿入すると、私はIDを取得する前に、他の誰かが別の注文を挿入するか?次に、上記のステートメントは、私の注文ではない新しい挿入された注文のIDを取得します。
どうすればいいのか教えてください。または、order/orderItemを間違った方法で設計してください。
P.S.私は角度2をフロントエンドとnode.jsとしてAPIとMySQLをDBとして作成しています。
ありがとうございます。
お返事ありがとうございますが、注文を挿入した後、「挿入ID」を尋ねる前に、別のユーザーも注文を挿入すると、「挿入ID」が表示されます誰か他の命令、どうすればこれを避けてください。 –
あなたはそれについて心配する必要はありません。 insert_idメソッドは、現在開いている接続に関連付けられています。誰もあなたのIDを取得しません。 –
ありがとうございます! –