Mysqljs,一个查询中的几个查询

时间:2017-04-18 13:30:45

标签: node.js

有没有办法执行包含多个查询的SQL查询?

以下示例返回语法错误:

connection.query('UPDATE table1 SET field="1" WHERE id=1; UPDATE table1 SET field="2" WHERE id=2;'
,function(error, results, fields) {});

1 个答案:

答案 0 :(得分:0)

您可能会发现您的MySQL包不支持多个语句查询。目前还不清楚你使用的是哪个MySQL软件包(有几个)。某些语言中的某些连接器确实提供了这种能力(我特意考虑PHP),但我不知道是否有任何node.js包。

然而......无论如何,这不是一个好习惯。要了解原因,请将整个查询列表视为一个较长的字符串:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        setColor(color: .blue)
        let touchCount = event?.touches(for: self)?.count
    }

此查询将因MySQL语法错误而失败,因为我故意拼写错误的关键字。但是你只是从MySQL连接器中获得一个“语法错误”,并且由你来完成试图找到问题的每个查询。对于像这样的简单错误,它可能不会太难,但如果您使用复杂的逻辑构建更长的查询并将它们连接成一个长字符串,则调试将非常困难。

你可能试图通过这种方式来提高性能,但是你获得的任何性能提升都会很小。您将节省一些时间将查询传输到数据库服务器(一个大字符串而不是一堆单独的字符串),但服务器仍然必须一次执行一个查询。

TL; DR一次运行一个查询。它使查找问题变得更加容易,并且会超过您可能获得的任何性能优势。

相关问题