RAISEERROR
およびROLLBACK
TSQL(Microsoft SQL Server)構文で使用されます。
MySQLの場合、 SIGNAL .. SET MESSAGE_TEXT ..
トリガー内で例外をスローするには:
BEGIN
IF (DATEDIFF(CURRENT_DATE(),NEW.birth_date) < 6570) THEN
-- Throw Exception
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Age is less than 18 years!';
END IF; -- A semicolon (delimiter) is missing here
END
一般的なSQLSTATE値を通知するには、「未処理のユーザー定義の例外」を意味する「45000」を使用します。
SIGNALの実行後にアクセスできるエラー値は、SIGNALステートメントによって発生したSQLSTATE値と、MESSAGE_TEXTおよびMYSQL_ERRNO項目です。