Поскольку невозможно установить минимальную длину переменной в mysql, как я могу проверить триггер, если добавленное числовое значение имеет, например, 11 цифр. Я пытался сделать это таким образомДлина номера в mysql
delimiter //
CREATE TRIGGER OnInsert BEFORE INSERT on 'klient'
declare err varchar(40);
if char_length(CAST(NEW.Phone AS CHAR(10)) < 9 THEN
set err = "zly nr telefonu";
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = err;
end if;
if char_length(CAST(NEW.Kod AS CHAR(6))) < 5 THEN
set err = "zly kod pocztowy";
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = err;
end if;
if NEW.nr < 1 THEN
set err = "zly nr domu";
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = err;
end if;
if char_length(CAST(NEW.Pesel AS CHAR(12))) < 11 THEN
set err = "zly nr pesel";
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = err;
end if;
//
delimiter ;
Но это вызывает ошибку.
Какая Ваша ошибка? –
Какой тип данных вы используете для своей колонки «Телефон»? –
У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '' klient 'declare err varchar (40); если char_length (CAST (NEW.Telefon AS CHAR (10 'в строке 1 \t 0.000 sec – whd