在同一个查询中运行多个命令有什么不好



我使用的是Sql Server和Postgresql,通常当我需要运行多个命令时,我会打开一个新的连接,对于每个需要的查询任务,我都会运行一个命令(例如插入1000行(。

如果我在一个命令中运行多个查询命令(用逗号分隔的查询(与以前的行为相比,这会很糟糕吗?

在一个调用中运行多个命令(并且能够执行(会使您极易受到SQL注入的攻击。如果之后有人可以附加UPDATEDELETE语句,那么任何查询,即使是简单的SELECT,也会变得危险。这就是为什么许多实现(尤其是PHP(只是禁止提交嵌套查询的能力。

另一方面,据我所知,这样做几乎没有正当的理由。通常会保持连接打开,那么调用本身所隐含的开销可以忽略不计。

如果你所寻求的实际上是原子性,那么你想尝试"交易;相反

如果你担心查询的复杂性,不想每次都重新解析它们,你可以看看";准备好的陈述";以及存储过程(如果您使用的是PostGreSQL的最新版本,则称为"函数"(。

最新更新