无法从 MySQL 中删除行

Dre*_*rew 5 mysql database delete-row

我有一个表,它不会删除一行。具体来说,当我尝试删除 GEO_SHAPE_ID 超过 150000000 的任何行时,它根本不会从数据库中消失。

\n\n

我努力了:

\n\n
    \n
  1. SQLyog 来删除它。
  2. \n
  3. 从表中删除\nGEO_SHAPE_ID = 150000042(0 行\n受影响)。
  4. \n
  5. 然后解锁表格2。
  6. \n
\n\n

据我所知,bigint 是 auto_increment 的有效候选者。有人知道会发生什么吗?\n每当我执行上述任何操作并刷新表列表时,该行都会重新出现。\n你必须帮助我们,博士。我们\xe2\x80\x99没有尝试过\xe2\x80\x99,我们\xe2\x80\x99都没有想法!

\n\n

DJ。

\n\n

编辑:根据 Daniel Vassallo 的建议:

\n\n
mysql> SELECT * FROM `GEO_SHAPE` WHERE GEO_SHAPE_ID = 150000042;\nEmpty set (0.01 sec)\n
Run Code Online (Sandbox Code Playgroud)\n\n

回答:在 MySQL 中发现“检查”和“修复”命令后,我发现了损坏的密钥,因此修复了这些命令并且它起作用了。

\n\n

附言。这是表结构和一些示例数据,仅供大家搞笑。

\n\n
CREATE TABLE `GEO_SHAPE` (\n  `GEO_SHAPE_ID` bigint(11) NOT NULL auto_increment,\n  `RADIUS` float default '0',\n  `LATITUDE` float default '0',\n  `LONGITUDE` float default '0',\n  `SHAPE_TYPE` enum('Custom','Region') default NULL,\n  `PARENT_ID` int(11) default NULL,\n  `SHAPE_POLYGON` polygon default NULL,\n  `SHAPE_TITLE` varchar(45) default NULL,\n  `SHAPE_ABBREVIATION` varchar(45) default NULL,\n  PRIMARY KEY  (`GEO_SHAPE_ID`)\n) ENGINE=MyISAM AUTO_INCREMENT=150000056 DEFAULT CHARSET=latin1 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC;\n\nSET FOREIGN_KEY_CHECKS = 0;\n\nLOCK TABLES `GEO_SHAPE` WRITE;\nINSERT 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');\nINSERT 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');\nINSERT 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');\nINSERT 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);\nINSERT 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);\nINSERT 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);\nINSERT 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);\nINSERT 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);\nUNLOCK TABLES;\n\nSET FOREIGN_KEY_CHECKS = 1;\n
Run Code Online (Sandbox Code Playgroud)\n

Dre*_*rew 3

问题是一个损坏的表。我用“CHECK TABLE GEO_SHAPE;”修复了这个问题 然后'修复表GEO_SHAPE;