mysql:我如何保护以使字段值为负

时间:2011-11-19 10:07:36

标签: mysql sql

我正在创建一张桌子。我正在使用它的一些更新查询。

此表格placeId, noOfGirls, noOfBoys.由于某些更新查询,这两个字段noOfGirls and noOfBoys的值变为negative.

有没有办法可以将这些negative值转换为0。意味着任何约束或其他东西,所以我可以保护它们是负面价值。

提前谢谢。

3 个答案:

答案 0 :(得分:4)

最简单的方法是使用无符号整数类型:

CREATE TABLE foo(bar INTEGER UNSIGNED)

The MySQL "numeric types" documentation有更多关于这意味着什么的信息。

答案 1 :(得分:3)

将列声明为unsigned int类型。

无符号范围是0到4294967295,因此该值永远不会变为负值。

您可以更改现有表格的架构

alter table table_name modify column noOfGirls int(10) unsigned;

您可以阅读更多here

答案 2 :(得分:1)

声明无符号zerofill工作,负值将转换为0.但您将收到以下警告 警告:#1264第1行的列'a1'超出范围值

其他方式:您可以创建触发器

http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html