数据截断列
问题描述:
您好IM尝试插入我的表从phpmyadmin的数据,但我得到的错误是这样数据截断列
1 row affected. Warning: #1265 Data truncated for column 'value' at row 1
我talble是这样
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左右后,当我尝试插入它的说错误数据截断谢谢。
答
数据被截断列显然意味着您的数据太宽,无法放入指定的列。这对value
场,这是类型text文本字段可容纳唯一的数据的65K。你需要更大的类型。也许MEDIUMTEXT可以容纳16MB的数据。
顺便说一句,因为你实际上是存储您的列的二进制数据。 MEDIUMBLOB实际上可能是一个更好的选择。
最后但并非最不重要的:
http://dev.mysql.com/doc/refman/5.7/en/miscellaneous-optimization-tips.html
与Web服务器,存储图像和其他二进制资产的文件,与 路径名存储在数据库中,而不是文件本身。大多数 Web服务器是在缓存文件比数据库内容好,所以 使用文件一般要快。 (虽然你必须处理备份和 存储问题自己在这种情况下)。
向我们展示您的INSERT查询.. –
我相信你的数据'value'列比它的极限(64 KB)放大 – Hermanto