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'は無効と見なされ、拒否されます。
-
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
-
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