增删改操作要点
- 增删改都走 query,返回结果里 affectedRows 是受影响行数
- INSERT 用 ? 占位,返回的 result.insertId 是自动生成的主键
- UPDATE 务必带 WHERE,否则整张表被改写
- DELETE 同样要带 WHERE,删错只能靠备份救回
- 批量插用 VALUES ? 一次传二维数组,比循环快很多
- 改完查 affectedRows 是否为 0,0 多半是 WHERE 没匹配上
增删改操作示例
async function addProduct(name, price) {
const [r] = await promisePool.query(
'INSERT INTO product (name, price) VALUES (?, ?)', [name, price]);
console.log('新 id:', r.insertId);
}
async function changePrice(id, price) {
const [r] = await promisePool.query(
'UPDATE product SET price = ? WHERE id = ?', [price, id]);
console.log('影响行数:', r.affectedRows);
}
async function removeProduct(id) {
const [r] = await promisePool.query(
'DELETE FROM product WHERE id = ?', [id]);
console.log('删掉行数:', r.affectedRows);
}
避坑提醒:批量插入 VALUES ? 时,二维数组每一项的字段顺序要和 SQL 里列顺序一致,否则类型错乱很难排查。