MySQL 5.1 リファレンスマニュアル :: 1 一般情報 :: 1.8 MySQLの標準への準拠 :: 1.8.6 MySQL における制約の処理 :: 1.8.6.1 PRIMARY KEYおよびUNIQUEインデックス制約
« 1.8.6 MySQL における制約の処理

1.8.6.2 無効値の制約 »
Section Navigation      [Toggle]
  • 1.8.6 MySQL における制約の処理
  • 1.8.6.1 PRIMARY KEYおよびUNIQUEインデックス制約
  • 1.8.6.2 無効値の制約
  • 1.8.6.3 ENUMおよびSET制約

1.8.6.1. PRIMARY KEYおよびUNIQUEインデックス制約

通常、主キー、ユニークキー、または外部キー違反を引き起こす行の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 の開発ロードマップ」 を参照してください。

Copyright © 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates