[英]Converting VARCHAR column to INT in MySQL / Sequel Pro
我正在尝试将数据库中的列从VARCHAR设置为INT(值已经在DB中)
执行此操作时,会发生以下情况(示例):
| number (varchar) | number (int |
| 20090911913 > 2147483647 |
| 3009092113 > 2147483647 |
每个数字都是唯一的(使用VARCHAR值),当将列设置为INT时,所有值都变为相同(2147483647)。 请注意,作为VARCHAR的所有值都不包含字母(我检查过)
现在我不知道为什么会发生这种情况,数据来自CSV,如果记录有不同的数字(不是2147483647),我在Sequel Pro中导入时检查。 在GUI中它显示它不同但是当全部导入时它将自动变为2147483647。
发生了什么,我该如何防止这种情况发生?
当您转换超出有符号整数类型Int
的范围内的数字,即-2147483648 ... 2147483647(即从-2 31到2 31 -1)时,MySql将该值限制为可以存储在一个最大值中的值。 Int
,即2147483647。
您显示的两个值都超出了Int
表示的范围。 你需要使用BigInt
来代替它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.