MySQL 错误代码:1264。第 1 行“列名”列的值超出范围

APi*_*als 3 mysql database mysql-workbench mysql-error-1264 workbench

我使用 MySQL 来存储一个 20 位的 ID 号。当我使用以下查询查询数据库时,出现以下错误。

询问:

UPDATE tablename SET columnname = 59641217344615859740;
Run Code Online (Sandbox Code Playgroud)

错误:

Error Code: 1264. Out of range value for column 'columnname' at row 1
Run Code Online (Sandbox Code Playgroud)

表信息:

引擎:InnoDB
行格式:动态
表整理:utf8mb4_general_ci

栏目信息:

类型:BIGINT(255)
可空:是
权限:选择、插入、更新、引用

我究竟做错了什么?我的查询有问题吗?也许与表或列设置?大多数其他出现此错误的人没有使用 BIGINT 等列类型,但我. 非常感谢您的回答。谢谢!

Vij*_*vch 5

您已达到MAXIMUM VALUE您使用的数据类型的 。

MySQL supports the SQL standard integer types INTEGER (or INT) and SMALLINT. 
As an extension to the standard, MySQL also supports the integer types 
TINYINT, MEDIUMINT, and BIGINT. The following table shows the required storage 
and range for each integer type.
Run Code Online (Sandbox Code Playgroud)

类型存储最小值最大值

        (Bytes) (Signed/Unsigned)   (Signed/Unsigned)
TINYINT   1           -128           127
                       0             255
SMALLINT    2     -32768            32767
                     0               65535
MEDIUMINT   3     -8388608           8388607
                      0              16777215
INT         4   -2147483648          2147483647
                      0              4294967295
BIGINT       8  -9223372036854775808    9223372036854775807
                        0             18446744073709551615
Run Code Online (Sandbox Code Playgroud)