mysql "serverStatus: 34"响应帆中的水线或.js是什么意思?



Sails.js版本 0.12.13。

User.query(`CALL someProc()`, function(err, data){
    console.log(data);
}

响应:

data: OkPacket {
    fieldCount: 0,
    affectedRows: 0,
    insertId: 0,
    serverStatus: 32,
    warningCount: 0,
    message: '',
    protocol41: true,
    changedRows: 0 
}

什么意思是"服务器状态:32"?"服务器状态:34"是什么意思?

Sails 中.query调用的响应直接来自驱动程序,在本例中为 mysql。 serverStatus是一个位域。 您可以在 MySQL 源代码文档中获取常量列表 - 列表中的第一个表示值 1 ,下一个2,然后是 4 等。

所以serverStatus: 32意味着只设置了第六位,对应于SERVER_STATUS_CURSOR_EXISTS

服务器能够满足客户端请求,并为查询打开了只读不可滚动游标。

此标志用于响应COM_STMT_EXECUTE和COM_STMT_FETCH命令。由二进制协议结果集用于指示必须使用COM_STMT_FETCH来获取行数据。

如果您看到 serverStatus: 34 ,则表示上述第二位 SERVER_STATUS_AUTOCOMMIT 都已设置:

服务器处于auto_commit模式。

最新更新