第1行mysql 5.6中的列的数据太长

第1行mysql 5.6中的列的数据太长,mysql,sql,sql-mode,Mysql,Sql,Sql Mode,我在应用程序的生产中使用MySql 5.6。现在,在应用程序的表单上有一个字段,它的数据类型为char(2)table,输入类型的最大长度为25。现在,当用户输入超过2个字符并点击save时,它会提示 因此,我搜索并发现,如果我需要无误地执行此操作,我需要将MySQL模式切换为not use STRICT,因此我在my.cnf文件中设置了sql\u模式,并进行了尝试。但我还是犯了同样的错误。 这是我的.cnf,看起来像: [mysqld] # # * Basic Settings # user

我在应用程序的生产中使用MySql 5.6。现在,在应用程序的表单上有一个字段,它的数据类型为char(2)table,输入类型的最大长度为25。现在,当用户输入超过2个字符并点击save时,它会提示

因此,我搜索并发现,如果我需要无误地执行此操作,我需要将MySQL模式切换为not use STRICT,因此我在my.cnf文件中设置了
sql\u模式
,并进行了尝试。但我还是犯了同样的错误。 这是我的.cnf,看起来像:

[mysqld]
#
# * Basic Settings
#
user        = mysql
pid-file    = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
port        = 3306
basedir     = /usr
datadir     = /var/lib/mysql
tmpdir      = /tmp
lc-messages-dir = /usr/share/mysql
sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
我正在使用MySql 5.6 我没有得到我在这里错过的东西。我希望那个错误消失

编辑:

我确实
设置了全局sql\u mode='
,然后
显示了变量
以下是输出:

但是仍然会出现相同的错误。

您可以使用sql设置系统变量sql\u模式:

SET GLOBAL sql_mode = '';
如果是INSERT语句,即使使用非严格sql模式,错误也会持续存在

在这种情况下,您需要修改ur列数据类型定义以允许更长的数据输入,或者修改查询

您可以这样修改您的查询以自己截断数据,因为MySQL不会自动处理它

INSERT ... VALUES( ..., LEFT('...',2));

我找到了这个问题的解决方案,如下所示:

您可以通过在JBoss数据源中添加属性jdbcomplianttruncation=false来解决此错误,如:

jdbc:mysql://localhost:3306/dbName?zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false

注意:如上图所示,当您要设置多个属性时,您可以使用
&

My be您的数据长度超过定义的列长度尝试编辑列长度或为文本指定类型您运行的查询是什么,并出现此错误?嘿,感谢您的快速响应。我尝试了上面的查询,但仍然是相同的错误。如果是select,错误将变成警告。如果是select,它将失败并出错。你的查询类型是什么?你能给我一个样本吗?我正在提交表单,因此它是插入查询,无法删除错误。您需要修改表结构或修改您的查询。已使用更多信息更新帖子。