@WiNNeR_tig

Как ограничить максимальное число в поле MYSQL?

Как ограничить максимальное число в поле MYSQL ?

Например есть поле activity в него пишутся значения типа activity = activity + 0.5 activity = activity + 1 итд
но нужно ограничить что бы в поле activity число не могло превышать восьми .
  • Вопрос задан
  • 1043 просмотра
Решения вопроса 1
Decadal
@Decadal
Ограничивайте его на стороне приложения, это логика приложения. База хранит данные и их связи между собой, но не производит валидации их типов.
Ну, если очень надо, просто задайте тип enum и перечислите там все возможные варианты
Есть ещё один вариант:

CREATE TRIGGER trigger_name BEFORE INSERT ON table
FOR EACH ROW
BEGIN
    IF New.activity>8 THEN
    SIGNAL SQLSTATE '10000'
        SET MESSAGE_TEXT = 'check constraint on table failed during insert';
    END IF;
END;

CREATE TRIGGER trigger_upd_name BEFORE UPDATE ON table
FOR EACH ROW
BEGIN
    IF New.activity>8 THEN
    SIGNAL SQLSTATE '10000'
        SET MESSAGE_TEXT = 'check constraint on table failed during update';
    END IF;
END;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Sanasol
@Sanasol
нельзя просто так взять и загуглить ошибку
https://stackoverflow.com/a/34883779

но в целом идея бредовая какая-то, зачем это базе делать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы