Repository navigation
Replies: 1 comment
|
这种 如果只是把 mysql.execute(
"update MaterialIndex "
"set MaterialNumber = MaterialNumber + 1 "
"where company='xxx' and `group`='yyy'");如果业务必须先查询再根据结果做复杂判断,可以使用事务加行锁,例如 MySQL/InnoDB: BEGIN;
SELECT MaterialNumber
FROM MaterialIndex
WHERE company = 'xxx' AND `group` = 'yyy'
FOR UPDATE;
UPDATE MaterialIndex
SET MaterialNumber = ...
WHERE company = 'xxx' AND `group` = 'yyy';
COMMIT;ormpp 提供 |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
struct MaterialIndex
{
int id;
std::string company; // company
std::string group; // group
int MaterialNumber;
};
// 注册 ormpp 反射与自增主键(字段顺序必须与结构体定义一致)
YLT_REFL(MaterialIndex, id, company, group, MaterialNumber);
REGISTER_AUTO_KEY(MaterialIndex, id); // id 为 int AUTO_INCREMENT 主键
query_s获取指定(company+group)的MaterialNumber,然后+1再update回去,这种情况下,是自己加锁,还是ormpp有加锁的机制?
All reactions