【发布时间】:2020-09-21 03:45:26
【问题描述】:
我正在使用mysql2 进行简单的更新:
UPDATE table1
SET table1.value1 = ?, table1.value2 = ?
WHERE user_id = (
SELECT user_id
FROM user
WHERE company_id = ?
)
table1 通过user_id 与用户表相关,但我只有company_id,所以我做了一个子查询(可能应该是一个连接,但那是另一个讨论):
const [results, buff] = await connection.execute(query, values);
return results
但是,当访问结果以确保没有错误并且只更新了一行时,results 返回:
console.log
ResultSetHeader {
fieldCount: 0,
affectedRows: 1,
insertId: 0,
info: 'Rows matched: 1 Changed: 0 Warnings: 0',
serverStatus: 2,
warningStatus: 0,
changedRows: 0
}
但我无法访问这些值。如果我尝试results.affectedRows 我会得到 p>
Property 'affectedRows' does not exist on type 'RowDataPacket[] | RowDataPacket[][] | OkPacket | OkPacket[]'.
使其工作的唯一方法是执行results['affectedRows']。有什么建议?
【问题讨论】:
-
你看过thisGit问题线程吗?
-
@PhaniMahesh 我正在遵循他们的异步/等待建议:npmjs.com/package/mysql2#using-promise-wrapper 获得错误的唯一方法是使用我正在使用的 try/catch。我应该仅仅依靠它来成功查询吗?
标签: mysql node.js typescript mysql2