Задавайте вопросы, мы ответим
Вы не зашли.
В условии задания сказано что значение определенного поля таблицы не может быть меньше 10 и больше 30. оператор Check не работает, а триггер не могу написать (ругается на синтаксис):
DELIMITER $$
USE `skripnik`$$
CREATE TRIGGER quantity_lim BEFORE INSERT ON specialization FOR EACH ROW
BEGIN
IF NEW.quantity < 10 OR NEW.quantity > 30
THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'field value must be between 10 and 30'
END IF;
END;
$$
Возле End
Неактивен
; забыли перед END IF
Неактивен
Спасибо, тригер записался но почему-то не срабатывает. Все равно записываются и большие значения. Вот так я создавал таблицу:
Подскажите как сделать так, чтобы выполнялось условие в триггере и невозможно было записать другое значение. Заранее благодарен
CREATE TABLE `skripnik`.`specialization` (
`number` INT NOT NULL ,
`specializarion` TINYTEXT NOT NULL ,
`year` INT NULL ,
`quantity` INT NULL ,
PRIMARY KEY (`number`) )
DEFAULT CHARACTER SET = utf8;
Неактивен
signal доступен с версии 5.5 поэтому проверить вашу процедуру не могу.
В ранних версиях такая проблема решалась использованием запроса генерирующего ошибку, например
Неактивен
Вах, спасибо дорогой vasya
Неактивен