0

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

对于有问题的专栏,我有以下内容:

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

设置小数(50,2)比我真正想要或需要的要多得多。我真的只想要10位数。它是一个价格,所以任何超过 1 亿的东西都可能是荒谬的,所以 decimal(10,2) 可能更合适。但是,MySQL 不接受以下查询:

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

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

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

4

2 回答 2

2

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

于 2012-08-29T18:47:55.863 回答
1

我已经用SQLyog试过了,效果很好。我尝试通过 Table Data 选项卡和使用 Query在SQLyog中直接更改两种方式。它只是在工作。十进制范围似乎没有问题,但问题出在其他地方。请参阅随附的屏幕截图

直接通过表数据选项卡 直接通过表数据选项卡

通过插入查询 通过插入查询

表结构在此处输入图像描述

希望它有帮助...

于 2012-08-29T19:15:21.010 回答