私は php/MySQLi ベースのサイトを開発しています。複雑な手順の実行中に何らかの理由でページがクラッシュした場合にどうなるかについて質問があります。
例:
if (get_message_call)
{
add something to table 1
add something to table 2
add something to table 3 ( based on some values inserted into table2 )
add something to table 4
etc...
}
PHPmyAdmin (InnoDB) を使用してデータベースを構築しました。ただし、主キー/外部キーが理論どおりに機能しなかったため、リレーションを割り当てていません (おそらく、私はそれを間違って書きました)。
私の主な懸念は、何らかの理由でステートメントが中止された場合 (ページのクラッシュ、接続の緩みなど)、「table3 に何かを追加」を実行しているとしましょう。最初と 2 番目のステートメントが実行され、残りは実行されないと思いますか?
他のテーブルのキーなどを台無しにする可能性があるため、これが発生しないようにする最善の方法は何ですか..説明が少し曖昧かもしれませんが、誰かが私の主張を理解してくれることを願っています.
「ストアド プロシージャとトリガーでのロールバックとコミット」について読んだことがありますが、正しく理解できたかどうかはわかりません..
前もって感謝します。