【TiDB 版本】v4.0.9
【问题描述】
smallint (10),字段长度给了10,插入只有5个数字值,却报长度不够。更改为smallint (500)还是报错,是啥原因啊。
root@mysql 15:39:15 [ims_a05_786]> CREATE TABLE ims_wash_code_vip_percent_set
(
-> id
int(10) NOT NULL AUTO_INCREMENT COMMENT ‘代理主键’,
-> vip_id
smallint(5) NOT NULL COMMENT ‘vip的id(关联ims_user_vip_setting表的id)’,
-> game_id
smallint(10) NOT NULL COMMENT ‘二级游戏的id(关联ims_wash_code_game_switch_sort表的id)’,
-> wc_money_scope
varchar(128) COLLATE utf8mb4_general_ci NOT NULL DEFAULT ‘’ COMMENT ‘洗码金额范围,例如:100,1000’,
-> wc_percent
decimal(5,2) NOT NULL DEFAULT ‘0.00’ COMMENT ‘洗码比例,例如:11.58<=>11.58%’,
-> audit_multiple
decimal(18,2) DEFAULT ‘0.00’ COMMENT ‘稽核倍数,可以为空’,
-> status
char(2) COLLATE utf8mb4_general_ci NOT NULL DEFAULT ‘0’ COMMENT ‘状态:0,启用;1,禁止;’,
-> remark
varchar(255) COLLATE utf8mb4_general_ci NOT NULL DEFAULT ‘’ COMMENT ‘备注’,
-> create_time
datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’,
-> create_by
varchar(32) COLLATE utf8mb4_general_ci NOT NULL DEFAULT ‘’ COMMENT ‘创建人员’,
-> update_time
datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘更新时间’,
-> update_by
varchar(32) COLLATE utf8mb4_general_ci NOT NULL DEFAULT ‘’ COMMENT ‘更新人员’,
-> min_valid_bet_number
decimal(18,2) DEFAULT ‘0.00’ COMMENT ‘最低有效投注额’,
-> max_valid_bet_number
decimal(18,2) DEFAULT ‘0.00’ COMMENT ‘最高有效投注额’,
-> PRIMARY KEY (id
)
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci AUTO_INCREMENT=1;
Query OK, 0 rows affected (0.53 sec)
root@mysql 15:39:20 [ims_a05_786]>
root@mysql 15:39:20 [ims_a05_786]>
root@mysql 15:39:20 [ims_a05_786]>
root@mysql 15:39:21 [ims_a05_786]>
root@mysql 15:39:21 [ims_a05_786]>
root@mysql 15:39:21 [ims_a05_786]> INSERT into ims_wash_code_vip_percent_set
-> (vip_id, game_id,wc_money_scope,wc_percent,audit_multiple,status,create_by,remark,min_valid_bet_number,max_valid_bet_number)
-> VALUES ( 1, 60363, 1, 0.50, 0,1, ‘springtest1’,null, 1, 1 ) ;
ERROR 1264 (22003): Out of range value for column ‘game_id’ at row 1
root@mysql 15:39:23 [ims_a05_786]>
root@mysql 15:39:24 [ims_a05_786]>
root@mysql 15:42:23 [ims_a05_786]>
root@mysql 15:42:23 [ims_a05_786]>
root@mysql 15:42:45 [ims_a05_786]> alter table ims_wash_code_vip_percent_set modify game_id smallint(500) NOT NULL COMMENT ‘二级游戏的id(关联ims_wash_code_game_switch_sort表的id)’;
Query OK, 0 rows affected (1.02 sec)
root@mysql 15:42:47 [ims_a05_786]> INSERT into ims_wash_code_vip_percent_set
-> (vip_id, game_id,wc_money_scope,wc_percent,audit_multiple,status,create_by,remark,min_valid_bet_number,max_valid_bet_number)
-> VALUES ( 1, 60363, 1, 0.50, 0,1, ‘springtest1’,null, 1, 1 ) ;
ERROR 1264 (22003): Out of range value for column ‘game_id’ at row 1