me gustaría ejecutar algo como esto en mi servidor MySQL:¿Puedo usar declaraciones múltiples en una consulta preparada para JDBC?
SET @id=(SELECT id FROM lookupTable WHERE field=?);
(SELECT * FROM table2 WHERE [email protected])
UNION
(SELECT * FROM table3 WHERE [email protected])
UNION
(SELECT * FROM table4 WHERE [email protected]);
Esto funciona bien desde la consola, pero no de mi Java PreparedStatement. Lanza una excepción con un error de sintaxis en el ';' separando las declaraciones. Me gusta la variable porque no tengo que repetir la cláusula de búsqueda, pero podría reescribirla si fuera necesario. El equivalente JOIN es un poco incómodo con las cláusulas de UNIÓN también.
Gracias,
Joshua
Como dice @ddimitrov, esto no parece posible directamente. No intenté 'PreparedStatement.addBatch()'. Un procedimiento almacenado probablemente también funcione para esto. –
Si está interesado en otros proveedores, la Base de datos CUBRID admite esta característica. Ver esta publicación en el foro http://www.cubrid.org/forum/534638. – Eye