RAISEERROR
và ROLLBACK
được sử dụng trong cú pháp TSQL (Microsoft SQL Server).
Trong trường hợp của MySQL, chúng tôi sử dụng SIGNAL .. SET MESSAGE_TEXT ..
để đưa ra một ngoại lệ bên trong Trigger:
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
Để báo hiệu một giá trị SQLSTATE chung, hãy sử dụng '45000', có nghĩa là "ngoại lệ do người dùng xác định chưa được xử lý."
Các giá trị lỗi có thể truy cập được sau khi thực thi SIGNAL là giá trịSQLSTATE được nâng lên bởi câu lệnh SIGNAL và các mục MESSAGE_TEXT vàMYSQL_ERRNO.