まず、一度INSERT
に 2 つのデータを取得したいと考えてTABLE
います。私はそれが不可能であることを知っています。この制限により、REQUESTS
(データを挿入するための) 2 つが同時に発生した場合に発生する可能性のある問題を予見しています。
INSERT
最初のテーブルにデータを入れる方法はありますか。INSERT
データの間違ったリンクを避けるためにリレーショナル データを入力しているため、最初は誰もデータを取得できませんでしTABLE
た (前述の関数を使用して最後に挿入された ID を取得しているために発生する可能性があります) mysqli_insert_id();
。
<strong>更新
例:イラスト(擬似コード)
(私の問題が明確に対処されていないため、例が追加されています)
REQUEST-1 :
//ClientRequest-1
1. INSERT data in table-A
2. GET INSERT-ID
3. INSERT data in table-B
REQUEST-2 :
//ClientRequest-2
1. INSERT data in table-A
2. GET INSERT-ID
3. INSERT data in table-B
チャレンジ:
両方のリクエストが次の順序 (マルチスレッド リクエスト)でエラー (前提条件) なしで並列処理されるとどうなるでしょうか。
01. Point # 1 of Request-1
02. Point # 1 of Request-2
03. Point # 2 of Request-2
04. Point # 3 of Request-2
05. Point # 2 of Request-1
06. Point # 3 of Request-1
問題は:
When Points 02,03,04 get executed, will the insert_id get affected for Request-1
それは正しい方法ですか、それとも他の方法ですか?