我有一个表,它不会删除一行。具体来说,当我尝试删除 GEO_SHAPE_ID 超过 150000000 的任何行时,它根本不会从数据库中消失。
我试过了:
- SQLyog 删除它。
- 从表中删除 GEO_SHAPE_ID = 150000042(0 行受影响)。
- 然后解锁表2。
据我所知,bigint 是 auto_increment 的有效候选者。有谁知道会发生什么?每当我执行上述任何操作并刷新表列表时,该行都会重新出现。你得帮助我们,博士。我们什么都没试过,我们都没有想法!
DJ。
编辑:根据 Daniel Vassallo 的建议:
mysql> SELECT * FROM `GEO_SHAPE` WHERE GEO_SHAPE_ID = 150000042;
Empty set (0.01 sec)
解答: 在 MySQL 中发现“检查”和“修复”命令后,我发现了损坏的密钥,因此修复了这些密钥并且它起作用了。
PS。这是表格结构和一些示例数据,仅供参考。
CREATE TABLE `GEO_SHAPE` (
`GEO_SHAPE_ID` bigint(11) NOT NULL auto_increment,
`RADIUS` float default '0',
`LATITUDE` float default '0',
`LONGITUDE` float default '0',
`SHAPE_TYPE` enum('Custom','Region') default NULL,
`PARENT_ID` int(11) default NULL,
`SHAPE_POLYGON` polygon default NULL,
`SHAPE_TITLE` varchar(45) default NULL,
`SHAPE_ABBREVIATION` varchar(45) default NULL,
PRIMARY KEY (`GEO_SHAPE_ID`)
) ENGINE=MyISAM AUTO_INCREMENT=150000056 DEFAULT CHARSET=latin1 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC;
SET FOREIGN_KEY_CHECKS = 0;
LOCK TABLES `GEO_SHAPE` WRITE;
INSERT INTO `GEO_SHAPE` (`GEO_SHAPE_ID`, `RADIUS`, `LATITUDE`, `LONGITUDE`, `SHAPE_TYPE`, `PARENT_ID`, `SHAPE_POLYGON`, `SHAPE_TITLE`, `SHAPE_ABBREVIATION`) VALUES (57, NULL, NULL, NULL, 'Region', 10, NULL, 'Washington', 'WA');
INSERT INTO `GEO_SHAPE` (`GEO_SHAPE_ID`, `RADIUS`, `LATITUDE`, `LONGITUDE`, `SHAPE_TYPE`, `PARENT_ID`, `SHAPE_POLYGON`, `SHAPE_TITLE`, `SHAPE_ABBREVIATION`) VALUES (58, NULL, NULL, NULL, 'Region', 10, NULL, 'West Virginia', 'WV');
INSERT INTO `GEO_SHAPE` (`GEO_SHAPE_ID`, `RADIUS`, `LATITUDE`, `LONGITUDE`, `SHAPE_TYPE`, `PARENT_ID`, `SHAPE_POLYGON`, `SHAPE_TITLE`, `SHAPE_ABBREVIATION`) VALUES (59, NULL, NULL, NULL, 'Region', 10, NULL, 'Wisconsin', 'WI');
INSERT INTO `GEO_SHAPE` (`GEO_SHAPE_ID`, `RADIUS`, `LATITUDE`, `LONGITUDE`, `SHAPE_TYPE`, `PARENT_ID`, `SHAPE_POLYGON`, `SHAPE_TITLE`, `SHAPE_ABBREVIATION`) VALUES (150000042, 10, -33.8833, 151.217, 'Custom', NULL, NULL, 'Sydney%2C%20New%20South%20Wales%20%2810km%20r', NULL);
INSERT INTO `GEO_SHAPE` (`GEO_SHAPE_ID`, `RADIUS`, `LATITUDE`, `LONGITUDE`, `SHAPE_TYPE`, `PARENT_ID`, `SHAPE_POLYGON`, `SHAPE_TITLE`, `SHAPE_ABBREVIATION`) VALUES (150000043, 10, -33.8833, 151.167, 'Custom', NULL, NULL, 'Annandale%2C%20New%20South%20Wales%20%2810km%', NULL);
INSERT INTO `GEO_SHAPE` (`GEO_SHAPE_ID`, `RADIUS`, `LATITUDE`, `LONGITUDE`, `SHAPE_TYPE`, `PARENT_ID`, `SHAPE_POLYGON`, `SHAPE_TITLE`, `SHAPE_ABBREVIATION`) VALUES (150000048, 10, -27.5, 153.017, 'Custom', NULL, NULL, 'Brisbane%2C%20Queensland%20%2810km%20radius%2', NULL);
INSERT INTO `GEO_SHAPE` (`GEO_SHAPE_ID`, `RADIUS`, `LATITUDE`, `LONGITUDE`, `SHAPE_TYPE`, `PARENT_ID`, `SHAPE_POLYGON`, `SHAPE_TITLE`, `SHAPE_ABBREVIATION`) VALUES (150000045, 10, 43.1002, -75.2956, 'Custom', NULL, NULL, 'New%20York%20Mills%2C%20New%20York%20%2810km%', NULL);
INSERT INTO `GEO_SHAPE` (`GEO_SHAPE_ID`, `RADIUS`, `LATITUDE`, `LONGITUDE`, `SHAPE_TYPE`, `PARENT_ID`, `SHAPE_POLYGON`, `SHAPE_TITLE`, `SHAPE_ABBREVIATION`) VALUES (150000046, 10, 40.1117, -78.9258, 'Custom', NULL, NULL, 'Region1', NULL);
UNLOCK TABLES;
SET FOREIGN_KEY_CHECKS = 1;