小编典典
是的,大多数数据库都允许这样做。通常,您必须使用一些东西来分隔SQL语句。在PostGRES和MySQL中,它是一个分号(;)。在Microsoft SQL
Server中,应使用关键字GO。[2013年5月更新:自SQL Server 2012起,您可以并且应该使用分号分隔语句。在SQL Server
2012之后(即下一版本和更高版本),这些将是必需的。现在,在SQL2012及更高版本中,现在不建议使用GO。]
MySQL / PostGRES示例:
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}
更好的数据库(即不是MySQL)也将支持使用BEGIN TRAN / COMMIT TRAN / ROLLBACK
TRAN的事务。使用事务,您实际上可以将所有语句批处理到一个原子操作中,如果其中一部分失败,则将所有三个语句回滚。有关这些方面的更多信息,请参见http://www.sqlteam.com/article/introduction-
to-transactions。
不过,您最可能需要的只是SQL语句之间的分号!
2020-09-24