通常、主キー、ユニークキー、または外部キー違反を引き起こす行のINSERT
/UPDATE
を行おうとすると、エラーが発生します。InnoDB
のようなトランザクションストレージエンジンを使用している場合、MySQL
ではステートメントが自動的にロールバックされます。非トランザクションストレージエンジンを使用している場合、MySQL
はエラーが発生した行で停止し、残りの行は未処理のままになります。
このキー違反を無視する場合、MySQLではINSERT
やUPDATE
に対するIGNORE
キーワードが使用できます。この場合、キー違反は無視され、引き続き次の行が処理されます。項12.2.4. 「INSERT
構文」
および 項12.2.10. 「UPDATE
構文」
を参照してください。
mysql_info()
C
API関数で、実際に挿入/更新される行数についての情報が取得できます。MySQL
4.1以降では、SHOW
WARNINGS
ステートメントも利用可能です。項23.2.3.35. 「mysql_info()
」
および 項12.5.4.31. 「SHOW WARNINGS
構文」
を参照してください。
現時点では、外部キーがサポートされているのはInnoDB
テーブルのみです。詳しくは
項13.5.6.4. 「FOREIGN KEY
制約」
を参照してください。MyISAM
テーブルでの外部キーサポートは、MySQL
5.2で実装される予定です。項1.5. 「MySQL の開発ロードマップ」
を参照してください。