今回はSQLIntegrityConstraintViolationExceptionが何かを解説します。

SQLIntegrityConstraintViolationExceptionとは

下記のコードで考えます。

try {

} catch (SQLIntegrityConstraintViolationException e) { 

}

catch文の中で使います。

データベースに設定された制約に違反した場合に発生する例外クラスです。

名前を分解してみます。

名前	                      意味
SQL	             データベースを操作するSQL
Integrity	       データの整合性
Constraint	     制約・ルール
Violation	       違反
Exception	       例外・エラー

つまり、SQLを実行した結果、データベースの整合性を守るための制約に違反したという意味です。

例えばMySQLには次のような制約があります。

  • PRIMARY KEY : 主キーの重複を禁止する
  • UNIQUE : 指定した値の重複を禁止する
  • FOREIGN KEY : 参照先に存在しないデータなどを禁止する
  • NOT NULL : NULLの登録を禁止する

これらの制約に違反するとSQL実行時に例外が発生する場合がありこんな時にSQLIntegrityConstraintViolationExceptionを使います。