簡體   English   中英

數據太長,無法顯示第1行的MySQL 5.6列

[英]Data too long for column at row 1 mysql 5.6

我正在為我的應用程序在生產中使用MySql 5.6。 現在發生的事情是,應用程序中的表單上存在一個字段,該字段的數據類型為char(2)表,輸入類型的最大長度為25。現在,當用戶鍵入的字符數超過2個並點擊保存時,它將提示您

在此處輸入圖片說明

因此,我在這里搜索並發現,如果需要確保沒有錯誤,請切換MySQL模式以不使用STRICT,因此我在my.cnf文件中設置了sql_mode並嘗試了。 但是我仍然遇到同樣的錯誤。 這是my.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,但沒有得到我所缺少的內容。 我希望該錯誤消失。

編輯:

我做了SET GLOBAL sql_mode = '' ,然后show variables; 輸出如下: 在此處輸入圖片說明 但是仍然出現相同的錯誤。

我找到了解決此問題的方法,如下所示:

您可以通過在JBoss數據源中添加屬性jdbcCompliantTruncation = false來解決錯誤,例如:

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

注意 :如上圖所示,如果您要設置多個屬性,則可以使用&

您可以使用sql設置系統變量sql_mode:

SET GLOBAL sql_mode = '';

如果它是INSERT語句,即使使用非STRICT sql模式,該錯誤也將持續存在。

在這種情況下,您需要修改ur列數據類型定義以允許更長的數據輸入,或者修改查詢。

您可以像這樣修改ur查詢以自行截斷數據,因為MySQL不會自動處理它。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM