为啥我收到错误 1264:第 1 行的“ping”列的值超出范围?

Posted

技术标签:

【中文标题】为啥我收到错误 1264:第 1 行的“ping”列的值超出范围?【英文标题】:Why am I getting error 1264: Out of range value for column 'ping' at row 1?为什么我收到错误 1264:第 1 行的“ping”列的值超出范围? 【发布时间】:2020-04-14 06:52:17 【问题描述】:

ping 的大小是 10,

表格数据是'ping': 48.68, 'download': 0.41, 'upload': 0.12

那么为什么大小为5的浮点值抛出错误:

mysql.connector.errors.DatabaseError: 1264: 第 1 行“ping”列的值超出范围

这是我的mysql表

+----------------+--------------+------+-----+-------------------+----------------+
| Field          | Type         | Null | Key | Default           | Extra          |
+----------------+--------------+------+-----+-------------------+----------------+
| id             | int(11)      | NO   | PRI | NULL              | auto_increment |
| ping           | float(10,10) | YES  |     | NULL              |                |
| download       | float(10,10) | YES  |     | NULL              |                |
| upload         | float(10,10) | YES  |     | NULL              |                |
| datetime_added | timestamp    | NO   |     | CURRENT_TIMESTAMP |                |
+----------------+--------------+------+-----+-------------------+----------------+

【问题讨论】:

【参考方案1】:

类型:

Floating-Point Types

MySQL 允许使用非标准语法:FLOAT(M,D) 或 REAL(M,D) 或 DOUBLE PRECISION(M,D)。 这里的(M,D)表示数值最多可以存储M位,其中D位可能在小数点后。

所以:float(10,10) 不允许存储 48.68。小数点前只能是0

db<>fiddle demo

【讨论】:

以上是关于为啥我收到错误 1264:第 1 行的“ping”列的值超出范围?的主要内容,如果未能解决你的问题,请参考以下文章

PDO PHP - PDOException - 数值超出范围:1264 第 1 行的列“customer_id”的值超出范围

为啥我会收到 Laravel Composer 解析错误?

不断收到此错误-不正确的整数值:第 1 行的列 'poi_id' 的'')[关闭]

第 1 行的 ''')' 附近的 SQL 语法有错误

第 1 行的 CSV 输入中的列数无效错误

为啥我在编译时收到以下错误:[关闭]