ホームページ >データベース >mysql チュートリアル >MySQL は制約をどのように処理するのでしょうか?

MySQL は制約をどのように処理するのでしょうか?

PHPz
PHPz転載
2023-08-27 15:45:08659ブラウズ

MySQL 如何处理约束?

MySQL が制約をどのように処理するかを理解しましょう -

MySQL は、トランザクション テーブル (ロールバックは許可されています) と非トランザクション テーブル (ロールバックは許可されていません) の処理に役立ちます) ロールバック)。これが、MySQL が他の DBMS とは異なる方法で制約を処理する理由です。非トランザクション データベースでは、複数の行の挿入または更新中にエラーが発生した場合、ロールバックする方法はありません。この状況には正しい方法で対処する必要があります。

MySQL Server は、実行する必要があるステートメントの解析時にエラーを検出するクエリに対してエラーを生成します。エラーが検出されると、ステートメントの実行中にエラーからの回復が試みられます。これは現在、すべてのステートメントに対して行われているわけではありません。

MySQL は、エラーが発生したときにステートメントを途中で停止したり、ステートメントから回復して続行したりできます。デフォルトでは、サーバーはここから回復して続行します。

外部キーを使用すると、テーブル間のデータの相互参照が可能になり、外部キー制約により、この分散したデータの一貫性が確保されます。

外部キー参照

MySQL は、CREATE TABLE および ALTER TABLE ステートメントでの ON UPDATE および ON DELETE 外部キー参照をサポートしています。

参照操作

利用可能な参照操作は、RESTRICT、CASCADE、SET NULL、および NO ACTION です。

NO ACTION はデフォルトの参照操作です。

ENUM

ENUM 値は、列定義にリストされている値、または同等の内部番号である必要があります。値をエラー値 (0 または空の文字列) にすることはできません。 ENUM('a','b','c') として定義された列の場合、'a'、'b'、'c' 以外の値 (''、'd'、'ax' など) は、無効とみなされ、拒否されました。

以上がMySQL は制約をどのように処理するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。