Fehler in der SQL-Abfrage (1213): Deadlock found when trying to get lock; try restarting transaction

Nikolaus

Benutzer
Beiträge
9
Vorbemerkung: Ich habe nicht viel Erfahrung mit SQL.

Ich habe unter Debian und MariaDB (neuseste Versionen) folgendes Problem in einem Bash-Script, das Statistiken meiner PV-Anlage erzeugt.
Für die Monatsstatistik werden zunächst einige Views erzeugt und dann eine Tabelle mit monatlichen Werten füllt (momenmtan ca.50 Zeilen).

Das Script läuft nächtlich einmal oder kann aus aus einer Grafana-Statistikseite (ohne Auto-Refresh) gestartet werden, einziger User bin ich :-)
Es gibt kein weiteres Script, das auf diese Tabelle zugreift
Sehr oft (geschätzt 30%) steigt es aus mit o.g. Fehler.

Struktur: Monat varchar(5) NULL mit Werten z.B.: 26 01 ... 26 06

folgender Code:
...
mysql -D Test -B -e "DELETE FROM Monat;"

.... View(s) generieren....

#echo "########### Fill table Monat"
mysql -D Test -B -e "INSERT INTO Monat (DateTime, Date, Monat, Zaehlerstand, Einspeisung, BezugMonat) SELECT DateTime, Date, Monat, Zaehlerstand, Einspeisung
, BezugMonat FROM V_BezugMonat ORDER BY Monat ASC;"

#echo "############ Update EinspeisungMonat BEI DIESEM KOMMANDO TRITT DER FEHLERAUF "
mysql -D Test -B -e "UPDATE Monat SET EinspeisungMonat = (SELECT EinspeisungMonat FROM V_EinspeisungMonat WHERE V_EinspeisungMonat.Monat = Monat.Monat);"
# wegen Zählerwechsel
mysql -D Test -B -e "UPDATE Monat SET EinspeisungMonat = EinspeisungMonat+18870.298000 WHERE Monat > '26 05' ;"
.... usw....

Kann mir jemand sagen, woran es liegt und wie ich es verhindern kann?
 
Werbung:
Zurück
Oben