Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Kann ich mit MySQL Connector/J mehrere durch Semikolon getrennte Abfragen ausführen?

Mit ; in einer Abfrage für die meisten Datenbanken funktioniert nicht, da es normalerweise nicht Teil der Anweisungssyntax selbst ist, sondern ein Abschlusszeichen für Befehlszeilen- oder Skripteingaben, um Anweisungen zu trennen. Der Befehlszeilen- oder Skriptprozessor sieht ein Semikolon als Signal dafür, dass die Anweisung vollständig ist und an den Server gesendet werden kann.

Auch in JDBC sollte eine einzelne Anweisung zum Vorbereiten (oder Ausführen) nur eins sein eigentliche Anweisung, sodass mehrere Anweisungen nicht zulässig sind und daher auch kein Semikolon erforderlich ist, und da bei einigen (den meisten?) Datenbanken das Semikolon nicht Teil der Anweisungssyntax ist, handelt es sich lediglich um einen Syntaxfehler einen enthalten zu haben.

Wenn Sie mehrere Anweisungen ausführen möchten, müssen Sie separate Ausführungen verwenden. Technisch gesehen hat MySQL eine Option zur Unterstützung mehrerer Ausführungen, die durch eine Verbindungseigenschaft aktiviert werden können. Dieses Verhalten entspricht nicht der JDBC-Spezifikation/API und macht Ihren Code weniger portabel. Siehe allowMultiQueries auf Treiber-/Datenquellen-Klassennamen, URL-Syntax und Konfigurationseigenschaften für Connector/J