Я знаю, что могу создать базовые триггеры сравнения (см. Ниже)
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