在mysql中数据才插入20多行就报错,求救啊!!!

mysql的建表语句如下:
CREATE TABLE `auth_function` (
`id` varchar(255) NOT NULL,
`name` varchar(255) DEFAULT NULL,
`description` varchar(255) DEFAULT NULL,
`page` varchar(255) DEFAULT NULL,
`generateMenu` varchar(255) DEFAULT NULL,
`zindex` int(11) DEFAULT NULL,
`pId` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `FKF101A48F383D56EC` (`pId`),
CONSTRAINT `FKF101A48F383D56EC` FOREIGN KEY (`pId`) REFERENCES `auth_function` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
插入的数据如下:
INSERT INTO `auth_function` VALUES ('11', '基础档案', '基础档案功能', null, '1', '0', null);
INSERT INTO `auth_function` VALUES ('111', '基础档案设置', null, 'page_base_jichudangan.action', '1', '0', '11');
INSERT INTO `auth_function` VALUES ('112', '收派标准', null, 'page_base_standard.action', '1', '1', '11');
INSERT INTO `auth_function` VALUES ('113', '取派员设置', null, 'page_base_staff.action', '1', '2', '11');
INSERT INTO `auth_function` VALUES ('114', '区域设置', null, 'page_base_region.action', '1', '3', '11');
INSERT INTO `auth_function` VALUES ('115', '管理分区', null, 'page_base_subarea.action', '1', '4', '11');
INSERT INTO `auth_function` VALUES ('116', '管理定区/调度排版', null, 'page_base_decidedzone.action', '1', '5', '11');
INSERT INTO `auth_function` VALUES ('12', '受理', null, null, '1', '1', null);
INSERT INTO `auth_function` VALUES ('121', '业务受理', null, 'page_qupai_noticebill_add.action', '1', '0', '12');
INSERT INTO `auth_function` VALUES ('122', '工作单快速录入', null, 'page_qupai_quickworkorder.action', '1', '1', '12');
INSERT INTO `auth_function` VALUES ('123', '工作单录入', null, null, '1', '2', '12');
INSERT INTO `auth_function` VALUES ('124', '工作单导入', null, 'page_qupai_workorderimport.action', '1', '3', '12');
INSERT INTO `auth_function` VALUES ('125', '工作单管理', null, null, '1', '4', '12');
INSERT INTO `auth_function` VALUES ('13', '调度', null, null, '1', '2', null);
INSERT INTO `auth_function` VALUES ('131', '查台转单', null, 'page_qupai_workbill_updatestaff.action', '1', '0', '13');
INSERT INTO `auth_function` VALUES ('132', '人工调度', null, null, '1', '1', '13');
INSERT INTO `auth_function` VALUES ('133', '取派调度监控', null, null, '1', '2', '13');
INSERT INTO `auth_function` VALUES ('14', '中转配送流程管理', null, null, '1', '3', null);
INSERT INTO `auth_function` VALUES ('141', '工作单审核', null, 'workordermanage_list.action', '1', '0', '14');
INSERT INTO `auth_function` VALUES ('142', '中转信息录入', null, null, '1', '1', '14');
INSERT INTO `auth_function` VALUES ('143', '入库', null, null, '1', '2', '14');
INSERT INTO `auth_function` VALUES ('144', '出库', null, null, '1', '3', '14');
INSERT INTO `auth_function` VALUES ('145', '客户签收', null, null, '1', '4', '14');
INSERT INTO `auth_function` VALUES ('146', '查看我的组任务', null, null, '1', '5', '14');
报错如下图所示:

求大神搭救啊!!!

使用命令行方式登陆到MySQL服务器, 建立一个数据库,数据库编码设为UTF-8。此时,如果直接在命令行窗口使用insert语句插入中文,就遇到类似 ERROR 1406 (22001): Data too long for column 'name' at row 1 错误。乍一看,是字段长度引起的问题,但是实际是字符编码的问题。可是尝试以下解决方法:
1、在Linux中,使用终端方式登陆MySQL服务器,运行以下命令:

set names utf8;

该命令将终端的字符编码设为了UTF-8。此后再插入数据库中的内容都会按照UTF-8的编码来处理。
2、在Windows下,命令行窗口不支持UTF-8编码,所以使用“set names utf8;”不会达到转化中文的效果。
所以在windows命令窗口下 使用:set names gbk;
告之mysql你是以gbk编码方式来操作的;
然后再把你上面插入的代码在记事本等编辑器里面吧字符编码改为gbk编码;
在记事本中保存的编码我 ANSI
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-29
要学会看出错信息
data too long for column `name` at row 1
name字段插入的值太长了
相似回答