簡體   English   中英

Mysql 1406 列的數據太長

[英]Mysql 1406 Data too long for column

我有一個包含超過 600 個字符的字符串,我想將它插入到VARCHAR (255)列中
我在兩個不同的數據庫上進行了測試:

  1. 對於mysql 5.7.31-34-log數據庫,我遇到了這個異常:
    SQLSTATE [22001]:字符串數據,右截斷:1406 第 1 行的列“名稱”的數據太長”
  • 我為每個數據庫轉儲了sql_mode ,結果如下:

["@@sql_mode"]=> 字符串(40) "STRICT_ALL_TABLES,NO_ENGINE_SUBSTITUTION"

  1. 另一方面,對於mysql 5.7.19數據庫,該字符串已很好地注冊到我的數據庫中,但帶有警告消息: Level Code Message
    警告 1265 第 1 行的列“名稱”的數據被截斷
  • sql_mode:

["@@sql_mode"]=> 字符串(0) ""

如果有人可以向我解釋禁用嚴格模式是一個好習慣,我將不勝感激,如果超過,截斷是否會刪除字符串的一部分?

您不能在 varchar(255) 中存儲 600 個字符,因為它只允許 255 個字符。取決於您的配置數據將在 255 個字符后被拒絕或截斷。 您使用的 MySql 版本允許 varchar 數據類型超過 255。 請更改列以延長長度。 例如,您可以使用 varchar(600)。

您可以將 600 長的字符串插入到 255 長的列中。 通過 TEXT 更改您的 VARCHAR(255) 就可以了。

暫無
暫無

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

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