列的数据被截断

时间:2016-11-10 03:45:26

标签: mysql sql phpmyadmin

你好我试着在我的桌子上插入来自phpmyadmin的数据,但是我得到了这样的错误

1 row affected. Warning: #1265 Data truncated for column 'value' at row 1

对我来说就像这样

    CREATE TABLE IF NOT EXISTS `setting` (
  `setting_id` int(11) NOT NULL,
  `store_id` int(11) NOT NULL DEFAULT '0',
  `group` varchar(32) COLLATE utf8_bin NOT NULL,
  `key` varchar(64) COLLATE utf8_bin NOT NULL DEFAULT '',
  `value` text COLLATE utf8_bin NOT NULL,
  `serialized` tinyint(1) NOT NULL
) ENGINE=MyISAM AUTO_INCREMENT=28279 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

我尝试放置5000个数据,我可以输入大约2000后,当我尝试插入其说错误数据截断谢谢。

1 个答案:

答案 0 :(得分:4)

对列进行截断的数据显然意味着您的数据太宽而无法放入指定的列中。它是value字段的类型text,文本字段只能容纳65K的数据。你需要一个更大的类型。也许MEDIUMTEXT可以容纳16MB的数据。

BTW,因为您实际上是在列中存储二进制数据。 MEDIUMBLOB实际上可能是更好的选择。

最后但并非最不重要:

http://dev.mysql.com/doc/refman/5.7/en/miscellaneous-optimization-tips.html

  

使用Web服务器,将图像和其他二进制资产存储为文件   存储在数据库中的路径名而不是文件本身。最   Web服务器在缓存文件方面比数据库内容更好,所以   使用文件通常更快。 (虽然你必须处理备份和   在这种情况下,存储会发生问题。)