我想在将记录插入“员工”表之前检查年龄是否大于18岁。我正在使用phpMyAdmin gui触发工具。但是当我在“定义”部分中键入此脚本时,会出现以下错误。
BEGIN
IF (DATEDIFF(CURRENT_DATE(),NEW.birth_date) < 6570) THEN
RAISEERROR('Age is less than 18 years!',16,1)
ROLLBACK
END IF
END
请帮助我解决这个问题。
答案 0 :(得分:1)
SC_THREAD(my_thread);
sensitive<<out;
和RAISEERROR
用于TSQL(Microsoft SQL Server)语法。
对于MySQL,我们使用SIGNAL .. SET MESSAGE_TEXT ..
在触发器内引发异常:
ROLLBACK
要发出通用SQLSTATE值的信号,请使用“ 45000”,这表示 “未处理的用户定义异常。”
执行SIGNAL后可访问的错误值是 由SIGNAL语句和MESSAGE_TEXT引发的SQLSTATE值和 MYSQL_ERRNO项目。