phpMyAdmin触发gui检查年龄

时间:2018-11-22 03:57:14

标签: mysql triggers phpmyadmin database-trigger raiserror

我想在将记录插入“员工”表之前检查年龄是否大于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

error message

请帮助我解决这个问题。

1 个答案:

答案 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项目。