Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 我应该在什么时候为列使用UNSIGNED属性?_Mysql_Sql_Unsigned Integer - Fatal编程技术网

Mysql 我应该在什么时候为列使用UNSIGNED属性?

Mysql 我应该在什么时候为列使用UNSIGNED属性?,mysql,sql,unsigned-integer,Mysql,Sql,Unsigned Integer,根据文档,UNSIGNED列不接受负数。那么,这是否意味着我应该为始终包含正值或空值的每一列使用UNSIGNED属性 假设此表结构: // vote +----+---------+---------+-------+------------+----------+ | id | id_post | id_user | value | code_table | time | +----+---------+---------+-------+------------+----------

根据文档,
UNSIGNED
列不接受负数。那么,这是否意味着我应该为始终包含正值或空值的每一列使用
UNSIGNED
属性

假设此表结构:

// vote
+----+---------+---------+-------+------------+----------+
| id | id_post | id_user | value | code_table |   time   |
+----+---------+---------+-------+------------+----------+

在上表中,除
value
column外,所有列均为空或正。所以,除了
value
column之外,我应该为所有列设置
UNSIGNED
属性吗?我说得对吗?或者使用
UNSIGNED
属性是基于另一个参数的?

如果您确定除
列之外的所有列都将包含正值,则应将其设置为
UNSIGNED
。使用UNSIGNED属性仅基于此参数作为您在列中期望的值。还要注意的是,无符号范围从0到n,而有符号范围从-n/2到n/2


在内存方面,有符号类型和无符号类型占用相同的内存空间(INT为4字节)。

根据要存储在列中的值使用
无符号属性

例如,ID通常是无符号值(这只是一种约定,没有什么可以阻止您使用负ID值)

另一方面,
age
列总是包含正值,
UNSIGNED
值非常适合它