Normalerweise wird die Datenbanktransaktion nicht übermittelt, was dazu führt, dass Aktualisierungen oder Löschvorgänge hängen bleiben.
Denken Sie nach dem Durchführen von Aktualisierungen oder Löschungen daran, die Transaktion zum Festschreiben einzureichen.
Suchen Sie den Datenbank-Client und führen Sie den Festschreibungsvorgang durch.
Wenn es immer noch nicht funktioniert. Wenn die Datenbank einen Datenvorgang nicht ausführen kann oder die Transaktion nicht festgeschrieben ist, sperrt sie die auszuführende SQL-Anweisung.
Sehen Sie sich den automatischen Übermittlungsstatus der Datenbank mit dem folgenden Befehl an
show variables like 'autocommit';
Stellen Sie die automatische Übermittlung der Datenbank über SQL aus
-- on为开启,off为关闭 set autocommit=off; -- 或者1为开启,0为关闭 set autocommit=0;
Die Daten in der Tabelle lauten wie folgt:
Öffnen zwei Fenster zum Ausführen der Aktualisierung bzw. Operation
update car set color ='银色' where id = 1; update car set color ='红色' where id = 1;
Fragen Sie die ausgeführte Transaktion ab:
SELECT * FROM information_schema.INNODB_TRX;
Anhand der Thread-ID (trx_mysql_thread_id) der Transaktion im Bild können wir den entsprechenden MySQL-Thread sehen: einer ist 1084 ( update wartet auf die Sperre) und der andere ist 1089 (Update-Transaktionen werden ohne Commit ausgeführt)
Sie können den Thread mit dem MySQL-Befehl beenden: kill thread id
kill 1089;
Wenn der Thread die Sperre hält Während des Zeitraums nicht beendet: Die zweite Update-Anweisung fordert Sie auf, auf das Zeitlimit der Sperre zu warten.
Verwandte Befehle:
-- 查看正在锁的事务 SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; -- 查看等待锁的事务 SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS; -- 查询mysql数据库中存在的进程 select * from information_schema.`PROCESSLIST`(show processlist;)
Oracle-Operationsmethode:
Sperrdatensätze abfragen
SELECT s.sid, s.serial# FROM v$locked_object lo, dba_objects ao, v$session s WHERE ao.object_id = lo.object_id AND lo.session_id = s.sid;
Sperrdatensätze löschen
ALTER system KILL session 'SID,serial#';
Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem, dass die MySQL-Datenbank beim Ausführen von Update hängen bleibt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!