当我成功使用Navicat for MySQL运行sql时,但是使用java jdbc程序失败了。这样的sql:
INSERT INTO version_event (app_token, event_id, version)
SELECT
a.app_token,
a.event_name event_id,
a.version
FROM
day_custom_event a
LEFT JOIN custom_events b ON a.event_name = b.event_id
WHERE
a.channel = 'all'
AND a.country = 'all'
AND a.version != 'all'
GROUP BY
a.app_token,
a.event_name,
a.version;"
和这样的表: 在此处输入图像描述
和jdbc程序是:
JDBC程序:
答案 0 :(得分:0)
在表中,您已设置列版本数据类型varchar(50)。如果您插入字符长度超过50的任何内容,那么该最大值允许5个字符,那么它将在java中为您提供数据截断错误。
所以,因为解决方案要么将大小从50增加,要么更改列的数据类型。
答案 1 :(得分:0)
通常,当您尝试保存某些对列太长的数据时会出现问题。在这种情况下,版本列的值太长。
这意味着该字段太小而无法保存数据,因此请检查该列的数据类型定义,并在必要时增加其大小。