MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

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


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

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

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

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

外部キーを使用すると、テーブル間でデータを相互参照できます。外部キーの制約により、この分散データの一貫性を保つことができます。

外部キー参照

MySQLは、CREATETABLEおよびALTERTABLEステートメントでONUPDATEおよびONDELETE外部キー参照をサポートします。

参照アクション

使用可能な参照アクションは、RESTRICT、CASCADE、SET NULL、およびNOACTIONです。

NOACTIONはデフォルトの参照アクションです。

ENUM

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


  1. PHPとMySQLで「ブール」値を処理する方法は?

    MySQLバージョン8.0.12を使用しています。まず、MySQLのバージョンを確認しましょう: mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.12    | +-----------+ 1 row in set (0.00 sec) MySQLでブール値を処理するには、BOOL、BOOLEAN、またはTINYINT(1)を使用できます。 BOOLまたはBOOLEANを使用する場合、MySQLはそれを内部でTINYINT(1)に変換します。 BOOLまたはBOOLE

  2. JDBCを使用してMySQLでバックスラッシュをエスケープする方法は?

    バックスラッシュをエスケープするには、レコードを挿入するときにPreparedStatementを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1904    (    ClientId int,    ClientName varchar(20),    ClientAge int    ); Query OK, 0 rows affected (0.00 sec) Javaコードは次のとおりです- import java.sql