数据库案例

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: 新增根据ID扣减库存功能,入参为id和stock。校验参数后执行数据库更新,确保库存为非负整数,更新成功返回结果,失败则抛出错误并记录日志。

增加一个根据id,扣减库存的功能。函数入参为:id,stock两个参数
// model/weaponSkinModel.js(新增)
async function updateWeaponSkinStock(id, newStock) {
// 校验
if (!id) throw new Error('ID 不能为空');
if (typeof newStock !== 'number' || newStock < 0) {
throw new Error('库存必须为非负整数');
}

try {
const [result] = await pool.execute(
'UPDATE weapon_skins SET stock = ? WHERE id = ?',
[newStock, id]
);
if (result.affectedRows === 0) {
throw new Error(未找到 ID=${id} 的数据);
}
return {
success: true,
message: 库存更新为 ${newStock},
affectedRows: result.affectedRows
};
} catch (error) {
console.error(❌ 修改 ID=${id} 库存失败:, error.message);
throw error;
}
}

// 更新暴露
module.exports = {
// *
updateWeaponSkinStock // 新增
};

// index.js(新增测试函数)
// 👉 测试:修改库存(对应 updateWeaponSkinStock 功能)
async function testUpdateWeaponSkinStock() {
console.log('===== 开始测试:修改库存 =====');
const testId = 2; // 用实际存在的 ID
const newStock = 15;
try {
await testPoolConnection();
// 执行修改
const result = await weaponSkinModel.updateWeaponSkinStock(testId, newStock);
console.log('修改结果:', result);
} catch (error) {
console.log('修改失败!原因:', error.message);
}
console.log('===== 测试结束:修改库存 =====\n');
}

// 👉 执行当前测试
testUpdateWeaponSkinStock();

相关文章
DQL-查找数据-分组查询
分组查询通过GROUP BY对数据按字段分类,配合聚合函数实现统计。COUNT、MAX、MIN、AVG、SUM分别用于计数、求最大值、最小值、平均值和求和。WHERE在分组前过滤数据,不可用聚合函数;HAVING在分组后过滤,可结合聚合函数使用,二者作用时机与条件判断方式不同。
|
6月前
|
SQL
DQL-查找数据-条件查询
SQL条件查询通过WHERE子句筛选数据,支持比较运算符(如&gt;、&lt;、=、&lt;&gt;)、BETWEEN、IN、LIKE模糊匹配及IS NULL判断,并可使用AND、OR、NOT逻辑运算符组合多个条件,实现精准数据检索。
|
6月前
|
存储 Go
创建武器皮肤表
创建武器皮肤表,包含ID、名称、型号、价格、外观、类别、品质、收藏标识、图片URL及库存等字段,完整匹配数据需求,支持高效存储与查询CS:GO类游戏皮肤信息,结构清晰,便于扩展。
排序查询案例
查询类别为“武器皮肤”且品质为“闪耀”的商品,仅显示名称、型号、价格和库存,按价格降序排列,价格相同时按库存升序排列。
新闻-正文-段落
通过段落标签(p)可定义文本段落,支持加粗、下划线、倾斜、删除线等文本样式。结合img标签插入图片,丰富页面内容。持续添加多段p与img标签,完善网页结构与视觉呈现。
|
6月前
|
存储 关系型数据库 MySQL
DDL-数据库
介绍MySQL数据库常用操作命令:查看、创建、删除数据库及切换使用数据库。支持`database`与`schema`互换语法,推荐使用utf8mb4字符集以存储emoji表情,如😌,适用于MySQL 8.0+版本。
|
6月前
|
JavaScript 测试技术 数据库
测试数据库新增
在 `weaponSkinModel.js` 中新增 `addWeaponSkin` 方法,实现向数据库插入武器皮肤数据功能,并通过 `index.js` 编写测试函数验证新增与查询,确保数据操作正确。
|
6月前
|
关系型数据库 MySQL 数据库
DQL-查找数据-分页查询
分页查询语法:select 字段 from 表名 [where 条件] [order by 排序字段] limit 起始索引,数量。起始索引从0开始,可由(页码-1)×每页数计算;第一页可省略索引,直接写limit 10。MySQL使用LIMIT实现,属数据库方言,各库语法不同。
|
6月前
|
SQL
DQL-查找数据-基本查询
DQL查询包含基本、条件、分组、排序和分页五部分。基本查询支持字段选择、别名设置及去重;建议少用“*”查所有字段,以提升效率并增强可读性。
|
6月前
|
安全
DML-删除数据
删除数据使用DELETE语句,可带WHERE条件删除指定记录,无条件则清空整表。注意:不可用于删除字段值,需用UPDATE置为NULL。上线后是否删除?物理删除即彻底移除;逻辑删除则标记为“已删”,保留数据以备后续查询,更安全常用。