SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 20.12.2011 12:47:33

Valis
Участник
Зарегистрирован: 20.12.2011
Сообщений: 3

Ограничение вводимых значений.

В условии задания сказано что значение определенного поля таблицы не может быть меньше 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

Неактивен

 

#2 20.12.2011 13:31:00

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Ограничение вводимых значений.

; забыли перед END IF

Неактивен

 

#3 20.12.2011 16:43:18

Valis
Участник
Зарегистрирован: 20.12.2011
Сообщений: 3

Re: Ограничение вводимых значений.

Спасибо, тригер записался но почему-то не срабатывает. Все равно записываются и большие значения. Вот так я создавал таблицу:
Подскажите как сделать так, чтобы выполнялось условие в триггере и невозможно было записать другое значение. Заранее благодарен
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;

Неактивен

 

#4 20.12.2011 20:20:52

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Ограничение вводимых значений.

signal доступен с версии 5.5 поэтому проверить вашу процедуру не могу.
В ранних версиях такая проблема решалась использованием запроса генерирующего ошибку, например

 
DELIMITER $$
CREATE TRIGGER quantity_lim BEFORE INSERT ON specialization FOR EACH ROW
BEGIN
IF NEW.quantity < 10 OR NEW.quantity > 30
THEN
insert into `несуществующая таблица` values(5);
END IF;
END$$

Неактивен

 

#5 26.12.2011 20:36:01

Suguby
Участник
Зарегистрирован: 26.12.2011
Сообщений: 21

Re: Ограничение вводимых значений.

Вах, спасибо дорогой vasya smile

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson