编辑:sqlwrite()失败当整数变量的值范围是设置太小了。

28日视图(30天)
编辑:
之前错误的理解它:“sqlwrite()不能高表保存到MySQL(本地连接模式),当表的行数等于或大于19324。”
谢谢你下面的回答,我意识到我有一个范围值问题。
% finb是我的原始表
抽搐
qb = finb (1:19324:);
sqlwrite(康涅狄格州,qb的qb)
toc
% - - - - - - - - - - - - - - - -错误消息
错误使用database.relational.connection /执行
范围值列的“价值”在19324行。
错误在database.mysql。连接/ sqlwriteHook(56行)
execute(康涅狄格州,insertquery);
错误在database.relational。连接/ sqlwrite(第880行)
但当表被缩短为19323行,没问题的代码。
qb = finb (1:19323:);
抽搐
sqlwrite(康涅狄格州,qb的qb)
toc
运行时间是84.472844秒。
我发现一个解释 一篇文章从StackOverflow 。它说MySQL强加限制为插入的行数。原因是sqlwrite()失败?这个神奇数字“19324”是什么意思?
我在考虑节省到MySQL chunk-wise通过for循环。有其他清洁的方法吗?欢迎任何建议。谢谢你!

接受的答案

Keshav
Keshav 2023年4月12日
你好西蒙,
我知道你正试图用“sqlwrite”功能,将表保存到MySql,你得到一个错误 “价值”的范围值列在19324行”。 是可能的,行19324列“价值”的值大于列“价值”的数据类型范围。
您可以参考以下mysql文档检查的范围不同的数据类型:
2的评论
西蒙
西蒙 2023年4月18日在43
Keshav你好,谢谢你的explanatoin。你是对的。在我从INT数据类型更改为BIGINT MySQL的“价值”,这个错误消失了。然而,当我重新运行sqlwrite(康涅狄格州,“表”,LongTable),它需要三个多小时,没有完成。LongTable大约有150000行和7列。它不应该是一个非常大的表。如果我将其保存到本地驱动器作为.mat文件,保存需要不到10分钟。为什么sqlwriting MySQL摊位吗?

登录置评。

更多的答案(0)

下载188bet金宝搏


释放

R2023a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!