【问题标题】: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
    

    【讨论】:

      猜你喜欢
      • 2012-10-18
      • 2021-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-31
      • 1970-01-01
      相关资源
      最近更新 更多