mysql 表复制报错_mysql中复制表数据提示报错,该怎么处理

mysql中复制表数据提示报错

有a,b两个表,需要将a表数据,插入b表,但是提示报错,看代码:

SQL code

--创建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;

欢迎大家阅读《mysql中复制表数据提示报错,该怎么处理》,跪求各位点评,by 搞代码

报错:

[Err] 1292 - Truncated incorrect DECIMAL value: '1a'

请问这个是为什么?高手请解释下。

------解决方案--------------------

检查adeS中的值是否有字符

------解决方案--------------------

先赋值 在再换

------解决方案--------------------

跟mysql的版本有关吧。

mysql> INSERT into b (bid,bdes) SELECT aid,CAST(ades AS DECIMAL(20,8)) FROM a;

Query OK, 5 rows affected (0.03 sec)

Records: 5 Duplicates: 0 Warnings: 0

mysql> 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)

------解决方案--------------------

刚刚测试了下 直接select是不会报错的 只有warnings

做insert的时候会报错

e7ce419cf2d6ad34d01da2ceb8829eed.png

微信 赏一包辣条吧~

023a57327877fb4402bcc76911ec18ea.png

支付宝 赏一听可乐吧~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值