3

このステートメントは、サーバーを「ハング」させます。

DELETE FROM StockPositions WHERE machineName LIKE 'P%';

DELETE FROM StockPositions WHERE machineName LIKE 'P%' LIMIT 1;

編集: これは実際に機能します! 失敗したら引き続きテストします。とにかく、ある種のロックの問題に傾いています...

対応するSELECTステートメントは期待どおりに機能します (500 行を返します)。

このステートメントは正常に機能します。

DELETE FROM StockPositions WHERE ID = 5226;

  • 外部キー カスケード テーブルは削除されません。編集:間違っています!以下の私の答えを見てください。
  • トリガーはありません。
  • ロックはありません (見かけ上)。
  • アイデアはありません。

何を探すべきか?

(慌てる必要はありません - 回避策で解決できますが、実際に何が起こっているのか知りたいです!)

編集:

CREATE TABLE `StockPositions` (
   `ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
   `isEnabled` tinyint(1) DEFAULT NULL,
   `readableName` varchar(32) NOT NULL,
   `machineName` varchar(32) NOT NULL,
   `longName` varchar(64) DEFAULT NULL,
   `accessibilityLevel` int(10) unsigned NOT NULL,
   `storey` char(1) DEFAULT NULL,
   `lengthX` decimal(10,3) unsigned DEFAULT NULL,
   `lengthY` decimal(10,3) unsigned DEFAULT NULL,
   `lengthZ` decimal(10,3) unsigned DEFAULT NULL,
   `positionType` varchar(50) DEFAULT NULL,
   `type` int(11) DEFAULT NULL,
   `frequency` int(11) DEFAULT NULL,
   `module` varchar(10) DEFAULT NULL,
   `prioritized` tinyint(4) DEFAULT NULL,
   `aisleID` int(10) DEFAULT NULL,
   PRIMARY KEY (`ID`),
   UNIQUE KEY `readableName` (`readableName`),
   UNIQUE KEY `machineName` (`machineName`)
) ENGINE=InnoDB AUTO_INCREMENT=11820 DEFAULT CHARSET=utf8
4

1 に答える 1

0

ごめん!* 赤面 * DELETE CASCADE が(親テーブルではなく)子テーブルで見つかりました。知っておくと良い。時間と労力をありがとう!

于 2012-09-05T08:28:34.323 に答える