UNSIGNED 属性是将数字类型无符号化。特别用于主键是自增的类型。
负面影响:
两个字段都是unsigned int ,1 2
当1-2 的时候返回的 并不是-1,而是4294967295,unsigned int最大的数字。在mysql数据库中对UNSIGNED数的操作,其返回值都是UNSIGNED 。
那么,怎么返回-1 呢?
set sql_mode = ‘NO_UNSIGNED_SUBTRACTION’;
一般来说,对于int 可能存放不了的数据,INT UNSIGNED 同样可能存放不了,建议将 int 提升为 BIGINT.
SQL_MODE 的设置其实是比较冒险的一种设置,因此在生产环境中强烈建议设置为严格模式。STRICT_TRANS_TABLES.