快速的新手 MySQL 问题。确保给定字段的最小值为 0 的最简单方法是什么?
基本上,我们有一个自动运行的脚本,它每 15 分钟从字段的值中减去一个整数值——但我们希望任何达到 0 的条目都保持在 0 并且不会变为负数。
这可以简单地通过 PHP 中的循环来完成,但我试图限制对数据库的调用......
有没有一种简单的方法可以使字段的最小值为 0,或者使该字段中的任何负值自动变为 0?
谢谢!
您是否尝试过简单的条件“WHERE”,还是问题比这更复杂?
UPDATE mytable SET mycolumn=mycolumn-1 WHERE mycolumn>0
您可以为您的字段设置 UNSIGNED 属性。如果您尝试将此字段设置为 < 0,mysql 将生成错误。
如果值已经为零,您可以将逻辑添加到脚本中以不从值中减去...
更正负值的更新触发器,将它们设置为零是另一个想法。
执行此操作的常用方法是CHECK约束,但 MySQL 不支持。
因此,要么使列无符号和/或确保在您的应用程序逻辑中,您仅在值 > 0 时才减去该值。