通常、主キー、ユニークキー、または外部キー違反を引き起こすレコードの挿入
/更新
を行おうとすると、エラーが発生します。InnoDB
のようなトランザクションストレージエンジンを使用している場合、MySQL
ではトランザクションが自動的にロールバックされます。非トランザクションストレージエンジンを使用している場合、MySQL
はエラーが発生したレコードで停止し、残りのレコードは未処理のままになります。
この問題を解決するために、MySQL
では、キー違反が発生する可能性があるほとんどのコマンドに
IGNORE
ディレクティブのサポートを追加しました(INSERT
IGNORE ...
など)。この場合、キー違反は無視され、引き続き次のレコードが処理されます。MySQL
における処理に関する情報を取得するには、mysql_info()
API 関数を使用します。MySQL バージョン 4.1
では SHOW WARNINGS
コマンドを使用します。 See
項11.1.3.30. 「mysql_info()
」。 See
項4.6.8.9. 「SHOW WARNINGS | ERRORS
」。
現時点では、外部キーがサポートされているのは
InnoDB
テーブルのみです。See
項7.5.5.2. 「FOREIGN KEY
制約」。MyISAM
テーブルでの外部キーサポートは、MySQL 5.0
ソースツリーで実装される予定です。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.