Установить минимальное значение поля MySQL - возможно? - PullRequest
3 голосов
/ 05 августа 2010

Быстрый новичок в вопросе MySQL.Какой самый простой способ гарантировать, что минимальное значение данного поля равно 0?

По сути, у нас есть скрипт, который запускается автоматически и вычитает целочисленное значение из значения поля каждые 15 минут:но мы хотим, чтобы любая запись, которая получает значение 0, оставалась в 0 и не становилась отрицательной.

Это можно было бы просто сделать с помощью цикла в PHP, но я пытаюсь ограничить вызовы для базы данных ...

Есть ли простой способ сделать минимальное значение для поля 0 или сделать так, чтобы любое отрицательное значение, введенное в это поле, автоматически становилось равным 0?

Спасибо!

Ответы [ 4 ]

4 голосов
/ 05 августа 2010

Вы пробовали простое условное "ГДЕ" или проблема более сложная?

UPDATE mytable SET mycolumn=mycolumn-1 WHERE mycolumn>0
2 голосов
/ 05 августа 2010

вы можете установить атрибут UNSIGNED для вашего поля. mysql выдаст ошибку, если вы попытаетесь установить для этого поля значение <0. </p>

1 голос
/ 05 августа 2010

Вы можете добавить логику в ваш скрипт, чтобы не вычитать значение, если значение уже равно нулю ...

Триггер обновления, который исправляет отрицательные значения, устанавливая их в ноль, является другой идеей.

0 голосов
/ 05 августа 2010

Обычный способ сделать это - ограничение CHECK , но MySQL не поддерживает это.

Так что либо оставьте столбец без знака, и / или убедитесь, что в логике приложения вычитаетезначение только тогда, когда оно> 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...