MySQL超出了十进制列的范围值

时间:2012-08-29 18:46:13

标签: mysql decimal range

在搜索之后,我发现很多超出范围的问题,人们不知道第一个数字m,十进制(m,n)是总数字。但是,这不是我的问题。

对于相关列,我有以下内容:

Field | Type                   | Null | Key | Default | Extra
preco | decimal(50,2) unsigned | NO   |     | 0.00    |

十进制设置(50,2)比我真正想要或需要的更多。我真的只想要10位数。这是一个价格,所以超过1亿可能是荒谬的,所以十进制(10,2)可能更合适。但是,MySQL不接受以下查询:

INSERT INTO `produto` (`tipo_id`, `preco`, `qtd`, `opcao1`) VALUES (110, '77888555.43', '10', 'Azul')

我通过CodeIgniter,phpMyAdmin和MySQL命令行客户端直接尝试了查询。我也试过没有十进制值的引号,但我总是得到同样的错误:

“第2行”'preco'列超出范围值“

2 个答案:

答案 0 :(得分:2)

您将preco的值作为字符串发送,MySQL以与数值相同的方式接受该字符串。

答案 1 :(得分:1)

我用SQLyog尝试过它,它运作得很完美。我尝试直接通过“表数据”选项卡并使用“查询”在SQLyog中更改两种方式。它只是工作。似乎在十进制范围内没有问题,但问题在于其他地方。查看随附的屏幕截图

直接通过表格数据标签 Directly through Table Data Tab

通过插入查询 Through insert query

表格结构enter image description here

希望有所帮助...