Mehrere mysql-Befehle aus einem Script über eine Verbindung

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
carsten2
Beiträge: 109
Registriert: 26.09.2003 04:43:04

Mehrere mysql-Befehle aus einem Script über eine Verbindung

Beitrag von carsten2 » 20.06.2006 18:41:47

Hallo,

dieses Problem beschäftigt mich schon eine ganze Weile aber jetzt brauch ich wirklich eine Lösung.
Wie kann ich mehrere Befehle aus einem Bashscript über eine Verbindung an den sql-Server schicken? Folgendes will ich machen

Code: Alles auswählen

mysql --skip-column-names $myconn "LOCK TABLES sortierung WRITE;"
MAXNR=`mysql --skip-column-names --batch $myconn "SELECT MAX(Nummer) FROM sortierung;"`
MAXNR=$((MAXNR+1))
mysql --skip-column-names --batch $myconn "INSERT INTO sortierung (Nummer) VALUES ($MAXNR);"
mysql --skip-column-names --batch $myconn "UNLOCK TABLES;"
Die erste Zeile scheint die Tabelle tatsächlich zu sperren denn bei den nächsten Zeilen kommt manchmal eine Fehlermeldung. Das bedeutet aber, daß für die zweite Zeile eine neue Verbindung aufgebaut wird was ich eigentlich vermeiden möchte. Andererseits funktioniert das ganze auch manchmal. Da habe ich aber die Vermutung, daß mysql den lock schon wieder freigegeben hat.

Und gleich noch ein Problem bei dem ich nicht weiß wie es dazu kommt.

Code: Alles auswählen

myconn="-h "$dbhost" -D "$dbname" -u "$dbuser" -p"$dbpass 
myconne=$myconn" -e "
Ich kann zwar $myconne benutzen aber in $myconn steht oft nichts mehr drin. Jemand eine Idee wie das kommt?

Carsten

Antworten