【问题标题】:Debezium and Float data typeDebezium 和 Float 数据类型
【发布时间】:2021-09-27 01:08:45
【问题描述】:
我在 MySQL 中有一个浮点数据类型
我尝试了所有的十进制转换器,但每次都得到错误的值
源数据类型float(3,2)
插入的值:32.43
来自 Kafka 主题的值:9.99
知道为什么转换没有正确进行吗?
更新:2021-07-26
我发现这是来自 MySQL 方面,因为 MySQL 本身以该格式存储此值。甚至 binlog 也仅将其存储为 9.99。
【问题讨论】:
标签:
mysql
apache-kafka
apache-kafka-connect
debezium
【解决方案1】:
Kafka 或 Debezium 没有产生这个问题,它来自 MySQL。我查了表和binlog,值只有9.99。
表 DDL:
CREATE TABLE `table1` (
`id` int(11) NOT NULL,
`name` varchar(100) DEFAULT NULL,
`point` decimal(3,2) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
insert into table2 values (29,'bbb',32.43);
select * from table1;
| 29 | bbb | 9.99 |
但是有一个警告。
Out of range value for column 'point' at row 1
学分:
我在 MySQL 的 slack 社区中提出了这个问题。 Graham Halsey 帮助我理解了这个问题。
float(3,2) means you can store 3 digits, 2 of which are after the decimal point