空白变量和INT列?

时间:2011-09-18 13:04:52

标签: php mysql

我在表中有一个列,其数据类型为整数。我想到的是,添加到该列中的值将是0 - N,或者只是空白,如空变量(见下文),但我不确定这是否可能?

if($resource) {
   $resource = $id - 2;
} else {
   $resource = "";
}

$result = mysql_query("INSERT INTO table (...,resource,...) VALUES (...,'$resource',...)");

如果没有,我可以改为使用VARCHAR的数据类型,然后说:

if($resource) {
   $resource = $id - 2;
} else {
   $resource = "INVALID";
}

在这种情况下,从列resource中提取值时是否需要执行任何转换函数,或者数字会自动被视为整数吗?

1 个答案:

答案 0 :(得分:3)

如果该字段因任何原因应为“白色”,我认为您应该将其标记为NULLABLE并使用单词NULL(不是INVALID)

如果列是数字,从不使用varchar,则会丢失很多东西(同样,int小于varchar)

编辑1:代码段,允许在列上显示空值:

ALTER TABLE mytable MODIFY mycolumn INT;

如果您将其指定为:

ALTER TABLE mytable MODIFY mycolumn INT NOT NULL;

它不可为空,所以如果你没有以不同的方式声明它,它应该是默认的

编辑2:重要说明,列不能是唯一,否则该值将无法为空!