4

快速的新手 MySQL 问题。确保给定字段的最小值为 0 的最简单方法是什么?

基本上,我们有一个自动运行的脚本,它每 15 分钟从字段的值中减去一个整数值——但我们希望任何达到 0 的条目都保持在 0 并且不会变为负数。

这可以简单地通过 PHP 中的循环来完成,但我试图限制对数据库的调用......

有没有一种简单的方法可以使字段的最小值为 0,或者使该字段中的任何负值自动变为 0?

谢谢!

4

4 回答 4

5

您是否尝试过简单的条件“WHERE”,还是问题比​​这更复杂?

UPDATE mytable SET mycolumn=mycolumn-1 WHERE mycolumn>0
于 2010-08-05T17:21:42.483 回答
3

您可以为您的字段设置 UNSIGNED 属性。如果您尝试将此字段设置为 < 0,mysql 将生成错误。

于 2010-08-05T17:15:50.770 回答
2

如果值已经为零,您可以将逻辑添加到脚本中以不从值中减去...

更正负值的更新触发器,将它们设置为零是另一个想法。

于 2010-08-05T17:22:29.337 回答
0

执行此操作的常用方法是CHECK约束,但 MySQL 不支持。

因此,要么使列无符号和/或确保在您的应用程序逻辑中,您仅在值 > 0 时才减去该值。

于 2010-08-05T17:27:55.973 回答