Sí, la mayoría de las bases de datos permiten esto. Por lo general, debe delimitar sus declaraciones SQL con algo. En PostGRES y MySQL es un punto y coma (;). En el servidor Microsoft SQL debe usar la palabra clave GO. [Actualización de mayo de 2013: a partir de SQL Server 2012, puede y debe usar punto y coma para delimitar sus declaraciones. Después de SQL Server 2012 (es decir, la próxima versión y más allá), estos serán obligatorios. Usar GO ahora es la forma obsoleta de hacer cosas en SQL2012 y más allá). ]
MySQL/POSTGRES ejemplo: Ejemplo
DELETE FROM DUMMYTABLE_A where X=${value};
DELETE FROM DUMMYTABLE_B where X=${value};
DELETE FROM DUMMYTABLE_C where X=${value};
MS-SQL:
DELETE FROM DUMMYTABLE_A where X=${value}
GO
DELETE FROM DUMMYTABLE_B where X=${value}
GO
DELETE FROM DUMMYTABLE_C where X=${value}
Better bases de datos (es decir, no de MySQL.) También apoyarán transacciones con COMENZAR TRAN/COMMIT TRAN/ROLLBACK TRAN . Usando transacciones, puedes agrupar todas las declaraciones en una operación atómica, donde si una parte fallara, las tres se revertirían. Consulte http://www.sqlteam.com/article/introduction-to-transactions para obtener más información sobre estos.
¡Lo más probable es que lo único que necesita son los puntos y comas entre sus declaraciones SQL!
No sé, pero esto no funciona para mí Estoy adjuntando la siguiente GIST https://gist.github.com/AdelinGhanaem/b565ca3a447e89087ab7 se puede ver que no separa los dos estados con 'query' como con rollback ... – Adelin
Intenté de esta manera y myBatis lanzó una excepción. El problema fue que no configuré la bandera allowMultiQueries = true en la URL JDBC. Gracias. –
Esto no funciona para mí también, estoy tratando de eliminar dos lotes de datos a través de la condición 'in', sin embargo, obtuve un error de sintaxis gramatical sql. –