小言_互联网的博客

关于mysql主键位为String,根据插入顺序排序问题

341人阅读  评论(0)

今天遇到一种情况,如下:

INSERT INTO `joysuch_hospital`.`sys_menu` (`primary_key`, `parent_key`, `module`, `component`, `svg`, `url`) VALUES ('workbench', NULL, '工作台', 'Workbench', 'workBentch', '/workbench');
INSERT INTO `joysuch_hospital`.`sys_menu` (`primary_key`, `parent_key`, `module`, `component`, `svg`, `url`) VALUES ('assetsMonitor', NULL, '资产监控', 'AssetsMonitor', 'assetsMonitor_svg', '/assetsMonitor');
INSERT INTO `joysuch_hospital`.`sys_menu` (`primary_key`, `parent_key`, `module`, `component`, `svg`, `url`) VALUES ('storageManagement', NULL, '入库管理', 'StorageQuery', 'storage_svg', '/storageManagement/storageQuery');
INSERT INTO `joysuch_hospital`.`sys_menu` (`primary_key`, `parent_key`, `module`, `component`, `svg`, `url`) VALUES ('use', NULL, '领用管理', 'GetUse', 'carryUse_svg', '/use/getUse');
INSERT INTO `joysuch_hospital`.`sys_menu` (`primary_key`, `parent_key`, `module`, `component`, `svg`, `url`) VALUES ('maintenance', NULL, '维保管理', 'MaintenanceQuery', 'maintenance', '/maintenance/maintenanceQuery');
INSERT INTO `joysuch_hospital`.`sys_menu` (`primary_key`, `parent_key`, `module`, `component`, `svg`, `url`) VALUES ('inventory', NULL, '一键盘点', 'Inventory', 'inventory_svg', '/inventory');
INSERT INTO `joysuch_hospital`.`sys_menu` (`primary_key`, `parent_key`, `module`, `component`, `svg`, `url`) VALUES ('repair', NULL, '报修管理', 'RepairHome', 'repaire', '/repair/repairHome');
INSERT INTO `joysuch_hospital`.`sys_menu` (`primary_key`, `parent_key`, `module`, `component`, `svg`, `url`) VALUES ('assetsParamsSet', NULL, '资产参数设置', 'AssetsMonitor', 'assetsParams_svg', '/assetsParamsSet');
INSERT INTO `joysuch_hospital`.`sys_menu` (`primary_key`, `parent_key`, `module`, `component`, `svg`, `url`) VALUES ('historicTrack', NULL, '历史轨迹', 'HistoricTrack', 'historyTrack', '/historicTrack');
INSERT INTO `joysuch_hospital`.`sys_menu` (`primary_key`, `parent_key`, `module`, `component`, `svg`, `url`) VALUES ('edgeAlarm', NULL, '报警查看', 'EdgeAlarm', 'edgeAlarm', '/edgeAlarm');
INSERT INTO `joysuch_hospital`.`sys_menu` (`primary_key`, `parent_key`, `module`, `component`, `svg`, `url`) VALUES ('sub2', NULL, '设备管理', NULL, 'deviceManage', NULL);
INSERT INTO `joysuch_hospital`.`sys_menu` (`primary_key`, `parent_key`, `module`, `component`, `svg`, `url`) VALUES ('deviceManage', 'sub2', '标签管理', 'CardLabelManage', NULL, '/deviceManage/cardLabelManage');
INSERT INTO `joysuch_hospital`.`sys_menu` (`primary_key`, `parent_key`, `module`, `component`, `svg`, `url`) VALUES ('cameraManage', 'sub2', '摄像头管理', 'CameraList', NULL, '/cameraManage/cameraList');
INSERT INTO `joysuch_hospital`.`sys_menu` (`primary_key`, `parent_key`, `module`, `component`, `svg`, `url`) VALUES ('sub_11', NULL, '用户管理', NULL, NULL, NULL);
INSERT INTO `joysuch_hospital`.`sys_menu` (`primary_key`, `parent_key`, `module`, `component`, `svg`, `url`) VALUES ('roleManage', 'sub_11', '角色管理', 'RoleManage', NULL, '/roleManage/roleManage');
INSERT INTO `joysuch_hospital`.`sys_menu` (`primary_key`, `parent_key`, `module`, `component`, `svg`, `url`) VALUES ('sub1', NULL, '地图管理', NULL, 'mapManage', NULL);
INSERT INTO `joysuch_hospital`.`sys_menu` (`primary_key`, `parent_key`, `module`, `component`, `svg`, `url`) VALUES ('enclosure', 'sub1', '围栏设置', 'EnclosureQuery', NULL, '/enclosure/enclosureQuery');
INSERT INTO `joysuch_hospital`.`sys_menu` (`primary_key`, `parent_key`, `module`, `component`, `svg`, `url`) VALUES ('region', 'sub1', '区域设置', 'RegionQuery', NULL, '/region/regionQuery');
INSERT INTO `joysuch_hospital`.`sys_menu` (`primary_key`, `parent_key`, `module`, `component`, `svg`, `url`) VALUES ('mapSet', 'sub1', '地图设置', 'MapSet', NULL, '/mapSet');
INSERT INTO `joysuch_hospital`.`sys_menu` (`primary_key`, `parent_key`, `module`, `component`, `svg`, `url`) VALUES ('alarmSet', NULL, '报警设置', 'AlarmQuery', 'alarmSet', '/alarmSet/alarmQuery');
INSERT INTO `joysuch_hospital`.`sys_menu` (`primary_key`, `parent_key`, `module`, `component`, `svg`, `url`) VALUES ('userManage', 'sub_11', '用户管理', 'UserHome', NULL, '/userManage/userHome');
INSERT INTO `joysuch_hospital`.`sys_menu` (`primary_key`, `parent_key`, `module`, `component`, `svg`, `url`) VALUES ('sub10', NULL, '系统设置', NULL, 'sysSet', NULL);
INSERT INTO `joysuch_hospital`.`sys_menu` (`primary_key`, `parent_key`, `module`, `component`, `svg`, `url`) VALUES ('homeMenuSet', 'sub10', '首页菜单设置', 'HomeMenuSet', NULL, '/homeMenuSet');
INSERT INTO `joysuch_hospital`.`sys_menu` (`primary_key`, `parent_key`, `module`, `component`, `svg`, `url`) VALUES ('licenceSet', 'sub10', 'Licence', 'LicenceSet', NULL, '/licenceSet');
INSERT INTO `joysuch_hospital`.`sys_menu` (`primary_key`, `parent_key`, `module`, `component`, `svg`, `url`) VALUES ('otherParamSet', 'sub10', '其他参数设置', 'OtherParamSet', NULL, '/otherParamSet');

数据库需要按照这个顺序排列,主键为primary_key

刚开始死活顺序不对,默认按照的主键的手写字母来排序的

后来发现需要修改数据库引擎

修改之前

DROP TABLE IF EXISTS `sys_menu`;
CREATE TABLE `sys_menu` (
  `primary_key` varchar(20) NOT NULL,
  `parent_key` varchar(20) DEFAULT NULL COMMENT '父级id',
  `module` varchar(20) NOT NULL COMMENT '模块名称',
  `component` varchar(50) DEFAULT NULL COMMENT '组件名称',
  `svg` varchar(50) DEFAULT NULL COMMENT '图标名称',
  `url` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`primary_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

修改之后 

DROP TABLE IF EXISTS `sys_menu`;
CREATE TABLE `sys_menu` (
  `primary_key` varchar(20) NOT NULL,
  `parent_key` varchar(20) DEFAULT NULL COMMENT '父级id',
  `module` varchar(20) NOT NULL COMMENT '模块名称',
  `component` varchar(50) DEFAULT NULL COMMENT '组件名称',
  `svg` varchar(50) DEFAULT NULL COMMENT '图标名称',
  `url` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`primary_key`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;

发现了吗,

引擎由   --->>>InnoDB 改为了 MyISAM 

行格式由--->>>COMPACT 改为了 DYNAMIC


转载:https://blog.csdn.net/qq_29278623/article/details/101028633
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场