为啥我收到错误 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”的值超出范围