有a,b两个表,需要将a表数据,插入b表,但是提示报错,看代码:--创建a表
CREATE TABLE `a` (
`aid` int(11) DEFAULT NULL,
`ades` varchar(50) DEFAULT NULL
);
INSERT INTO `a` VALUES (1,'1a'),(2,'2a'),(3,'3a'),(4,'4a'),(5,'5a');
--创建b表
CREATE TABLE `b` (
`bid` int(11) DEFAULT NULL,
`bdes` decimal(20,8) DEFAULT NULL
);
--复制数据
INSERT into b (bid,bdes) SELECT aid,CAST(ades AS DECIMAL(20,8)) FROM a;报错:
[Err] 1292 - Truncated incorrect DECIMAL value: '1a'请问这个是为什么?高手请解释下。
CREATE TABLE `a` (
`aid` int(11) DEFAULT NULL,
`ades` varchar(50) DEFAULT NULL
);
INSERT INTO `a` VALUES (1,'1a'),(2,'2a'),(3,'3a'),(4,'4a'),(5,'5a');
--创建b表
CREATE TABLE `b` (
`bid` int(11) DEFAULT NULL,
`bdes` decimal(20,8) DEFAULT NULL
);
--复制数据
INSERT into b (bid,bdes) SELECT aid,CAST(ades AS DECIMAL(20,8)) FROM a;报错:
[Err] 1292 - Truncated incorrect DECIMAL value: '1a'请问这个是为什么?高手请解释下。
INSERT INTO b (bid,bdes)
SELECT aid,(ades+0) as ades1 FROM a;你说的这个啊,这个也报错啊
[Err] 1292 - Truncated incorrect DOUBLE value: '1a'
Query OK, 5 rows affected (0.03 sec)
Records: 5 Duplicates: 0 Warnings: 0mysql> select * from b;
+------+------------+
| bid | bdes |
+------+------------+
| 1 | 1.00000000 |
| 2 | 2.00000000 |
| 3 | 3.00000000 |
| 4 | 4.00000000 |
| 5 | 5.00000000 |
+------+------------+
5 rows in set (0.00 sec)
mysql> select @@version;
+------------------+
| @@version |
+------------------+
| 5.1.46-community |
+------------------+
1 row in set (0.01 sec)
做insert的时候会报错