#1
|
|||
|
|||
MySQL - ошибка в INSERT
Henri Laan написал(а) к All в Jan 18 17:27:34 по местному времени:
Нello, All. Отловил тут ошибку: ====================== 28-01-18 00:19:46 [00000033] Echomail SQL Exception in save: java.sql.SQLException: Unable to run insert stmt on object Echomail ...... at com.j256.ormlite.misc.SqlExceptionUtil.create(SqlExceptionUtil.java:22) at com.j256.ormlite.stmt.mapped.MappedCreate.insert(MappedCreate.java:135) at com.j256.ormlite.stmt.StatementExecutor.create(StatementExecutor.java:450) at com.j256.ormlite.dao.BaseDaoImpl.create(BaseDaoImpl.java:310) at jnode.dao.GenericDAO.save(GenericDAO.java:335) at jnode.ftn.tosser.FtnTosser.tossEchomail(FtnTosser.java:177) at jnode.ftn.tosser.FtnTosser.tossInboundDirectory(FtnTosser.java:282) at jnode.main.threads.TosserQueue.toss(TosserQueue.java:49) at jnode.ftn.tosser.FtnTosser.tossIncoming(FtnTosser.java:209) at jnode.protocol.binkp.BinkpProtocolTools.forwardToTossing(BinkpProtocolTools.java:166) at jnode.protocol.binkp.connector.BinkpAbstractConnector.proccessFrame(BinkpAbstractConnector.java:254) at jnode.protocol.binkp.connector.BinkpAsyncConnector.run(BinkpAsyncConnector.java:158) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'message' at row 1 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4235) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4169) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2617) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2778) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2825) at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2156) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2441) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2366) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2350) at com.j256.ormlite.jdbc.JdbcDatabaseConnection.insert(JdbcDatabaseConnection.java:170) at com.j256.ormlite.stmt.mapped.MappedCreate.insert(MappedCreate.java:91) ... 13 more ====================== Поле message в таблице echomail по-умолчанию создается с типом text. При вставке некоторых сообщений этого явно не хватает. Конкретно здесь идет вставка 71426 символов, при ограничении в 65535. Т.е. такое решение может помочь: ALTER TABLE echomail MODIFY message MEDIUMTEXT; ну или LONGTEXT, не знаю, как лучше. При этом, в таблице netmail поле text по-умолчанию идет с типом MEDIUMTEXT Best regards, Нenri Laan. --- |