我可以在mySQL documentation看到
D必须不大于M.
但是当我用DECIMAL(10,10)创建数据库时,大于1的值插入为0.999? 为什么M不能等于D?
修改:为了演示:
CREATE TABLE `t3` (
`a` decimal(8,8) NOT NULL
)
INSERT INTO t3 (a) VALUES (1.43);
0.99999 ...将被插入。
答案 0 :(得分:0)
我刚刚创建了一个表....
CREATE TABLE `t3` (
`a` decimal(8,8) NOT NULL
)
根据文档,这是可以的,因为你指出,D不大于M - 但它等于M.所以这是有效的。
至于为什么不允许1 - 这是因为我已经定义了一个有8位数字的字段 - 所有8位都是之后的小数位。因为1在小数位之前,所以它大于允许的范围,因为它在小数位之前。
答案 1 :(得分:0)