在开发的时候,有的时候需要同时执行多条sql语句才能满足自己的功能点。怎么办呢?
我服务端使用的express,数据库是mysql。我尝试了下,在一次query操作的时候,执行多条sql语句,报错了,但是我直接把sql语句复制到mysql的命令行中时没有问题的,这是怎么回事呢?
打开mysql包的文件看了下,原来在实例化mysql的时候,有一个多语句的配置,如下:
/**
* Allow multiple mysql statements per query. Be careful with this, it exposes you to SQL injection attacks. (Default: false)
*/
multipleStatements?: boolean | undefined;
对,然后在创建mysql实例、连接的时候,配置一下这个选项为true就可以了。
var pool = mysql.createPool({
multipleStatements: true, // 允许每个query操作的时候执行多条sql语句
host: "xxxxx",
port: xxxx,
user: "xxxx",
password: "xxxx",
database: "xxx",
timezone: "08:00"
});
这样就可以实现在一次query操作的时候,执行多条sql语句。