Error : Truncated incorrect DOUBLE value & ON DUPLICATE KEY UPDATE

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xinjianwuhen1991/article/details/81913477

1 背景

建表语句:

CREATE TABLE `student` (
  `id` int(11) DEFAULT NULL,
  `cname` varchar(30) DEFAULT NULL,
  `score` double DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `sex` tinyint(4) DEFAULT NULL,
  `parent_id` int(100) DEFAULT NULL,
  `logical_model_id` int(11) DEFAULT NULL,
  `logical_column_code` varchar(255) DEFAULT NULL,
  `version_type` int(11) DEFAULT NULL,
  UNIQUE KEY `logical_model_id` (`logical_model_id`,`logical_column_code`,`version_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

然后在表上logical_model_id,logical_column_code,version_type三个字段上建立唯一索引。

2 现象

在表中已经有了1,'city_id',0的情况下插入语句:

INSERT INTO `student` 
(`cname`, `age`, `logical_model_id`, `logical_column_code`, `version_type`) VALUES 
('we', 12, 1, 'city_id', 0) 
ON DUPLICATE KEY UPDATE cname='whisper' AND 
age=100;

报错:Error : Truncated incorrect DOUBLE value: 'we'

如果只有cname,没有age是没有问题的。如果有and则会报错。

3 原因分析

猜你喜欢

转载自blog.csdn.net/xinjianwuhen1991/article/details/81913477