sql >> Base de Datos >  >> RDS >> Mysql

¿Puedo ejecutar múltiples consultas separadas por punto y coma con MySQL Connector/J?

Usando ; en una consulta para la mayoría de las bases de datos no funciona, ya que generalmente no es parte de la sintaxis de la declaración en sí, sino un terminador para la línea de comandos o la entrada de secuencias de comandos para separar las declaraciones. La línea de comandos o el procesador de secuencias de comandos ven un punto y coma como señal de que la declaración está completa y se puede enviar al servidor.

Además, en JDBC, una instrucción única preparar (o ejecutar) solo debe ser una declaración real, por lo que no se permiten múltiples declaraciones y, por lo tanto, tampoco es necesario tener un punto y coma, y ​​en cuanto a algunas (¿la mayoría?) Bases de datos, el punto y coma no es parte de la sintaxis de la declaración, es simplemente un error de sintaxis tener uno incluido.

Si desea ejecutar varias declaraciones, debe usar ejecuciones separadas. Técnicamente, MySQL tiene una opción para admitir múltiples ejecuciones que se pueden habilitar mediante una propiedad de conexión. Este comportamiento no cumple con la especificación/API de JDBC y hace que su código sea menos portátil. Ver allowMultiQueries en Nombres de clase de controlador/origen de datos, Propiedades de configuración y sintaxis de URL para Connector/J