
Ein Shell-Skript führt einen Dump für eine mysql
Tabelle aus, aber bevor ich den Dump der Tabelle ausführe, möchte ich prüfen, ob diese Tabelle von einer anderen Anwendung verwendet wird. Wenn ja, möchte ich warten und in eine Schleife eintreten, bis die Anwendung das Laden der Tabelle beendet hat, und mit dem Vorgang fortfahren, mysqdump
nachdem sie abgeschlossen ist.
Antwort1
Sie müssen den Befehl verwenden,
SHOW OPEN TABLES
Experimentieren Sie in meinem System
Ich habe den Befehl ausgeführt und dies ist die erste Ausgabe, die ich erhalten habe.
"Database" "Table" "In_use" "Name_locked"
db_name "table1" "0" "0"
db_name "table2" "0" "0"
Nun habe ich eine SELECT
Abfrage für eine Tabelle ( table1
) ausgeführt, die etwa 2 Millionen Datensätze enthielt. Ich habe eine weitere MySQL-Verbindung geöffnet und die erwähnte Abfrage ausgeführt. Die Ausgabe, die ich erhalten habe, ist:
"Database" "Table" "In_use" "Name_locked"
db_name "table1" "1" "0"
db_name "table2" "0" "0"
Aus der obigen Ausgabe geht also hervor, dass die In_use
Spalte angibt, dass die Tabelle derzeit verwendet wird.