我知道我可以创建基本比较触发器(见下文)正则表达式IF语句
CREATE TRIGGER HospitalCheck
BEFORE INSERT ON Hospital
FOR EACH ROW
BEGIN
IF NEW.HospitalID > 9999 THEN
call fail('HOSPITAL CODE INVALID');
END IF;
END
我会如何使用正则表达式只允许号码? (而不是> 9999) (在SELECT 相当于串检查 REGEXP '^ [0-9] + $')
我想:
IF NEW.HospitalID REGEX '^[0-9]+$' THEN
call fail('HOSPITAL CODE INVALID');
END IF;
,但我得到
:错误: - >#1064 - 您的SQL语法错误;检查与你的MySQL服务器版本相对应的手册,在'REGEX'^ [0-9] + $'THEN call fail('HOSPITAL CODE INVALID'); END IF '第5行
是的,但我得到一个语法错误 – Mitch 2011-05-08 08:29:06
'IF NEW.HospitalID正则表达式'^[0-9] + $'THEN' 'call fail('HOSPITAL CODE INVALID');' 'END IF;' 'END':ERROR: - >#1064 - 您的SQL语法错误;检查与你的MySQL服务器版本相对应的手册,在'REGEX'^ [0-9] + $'THEN call fail('HOSPITAL CODE INVALID'); END IF'在第5行 – Mitch 2011-05-08 08:32:34
如果正则表达式是数值,那么它将标记为无效。或者用NOT_REGEXP替换REGEX(应该是REGEXP),或者在备注上使用'^ [^ 0-9] + $' – 2011-05-08 08:36:14