求助个问题
[11:44:11] .لaлlι: 事务开始:
查询一最大值(数字)
插入一条数据,同一字段值设置为(第一步最大值 + 1)
提交事务
[11:44:43] .لaлlι: 这会有个线程同步问题,比如线程1,2同时查到最大值为10,则可能同时 INSERT 11
[11:45:05] .لaлlι: 而我不能把字段配置成“unique", 因为业务的原因
[11:45:13] .لaлlι: 求助诸位,先谢谢
[11:47:04] .لaлlι: C语言我知道可以弄LOCK锁函数,但是我想以数据库的方式,不知道有没有解决办法。比如,有没有办法让事务一开始,自动锁定,其他线程进入事务只能等待如果描述不清,我还是举例算了,表有 产品和 版本两字段
产品,版本
——————————————————————
产品A,1
产品A,2
产品XX,1
产品YY,1
产品YY,2
产品YY,3如果两个事务同时查到产品A的最大版本2,则同时INSERT (产品A,3)明显就有问题。
[11:44:11] .لaлlι: 事务开始:
查询一最大值(数字)
插入一条数据,同一字段值设置为(第一步最大值 + 1)
提交事务
[11:44:43] .لaлlι: 这会有个线程同步问题,比如线程1,2同时查到最大值为10,则可能同时 INSERT 11
[11:45:05] .لaлlι: 而我不能把字段配置成“unique", 因为业务的原因
[11:45:13] .لaлlι: 求助诸位,先谢谢
[11:47:04] .لaлlι: C语言我知道可以弄LOCK锁函数,但是我想以数据库的方式,不知道有没有解决办法。比如,有没有办法让事务一开始,自动锁定,其他线程进入事务只能等待如果描述不清,我还是举例算了,表有 产品和 版本两字段
产品,版本
——————————————————————
产品A,1
产品A,2
产品XX,1
产品YY,1
产品YY,2
产品YY,3如果两个事务同时查到产品A的最大版本2,则同时INSERT (产品A,3)明显就有问题。
解决方案 »
- mysql高手进。不是高手很难解决的问题
- mysql触发器update的一个问题
- 一条奇怪的mysql语句
- 2003 - Can't connect to MySQL server on 'localhost' (10061)怎么解决?
- 太急,请问asp.net+c#开发的网站能不能采用my sql数据库.
- 关于MySQL中select语句
- 请帮忙!mysql安装
- 我在官方网站下的MYSQL里有个WINMYSQLADMIN.EXE,怎么没法用?
- MySQLIntegrityConstraintViolationException: Duplicate entry for key 'PRIMARY' 错误
- 请问怎么才能用SQL语句在MYSQL下创建一个数据库?
- Mysql表分区问题
- 如何优化mysql子查询
Query OK, 0 rows affected (0.00 sec)mysql> insert into test1 values(1);
Query OK, 1 row affected (0.00 sec)mysql> create table test2(a int);
Query OK, 0 rows affected (0.00 sec)mysql> insert into test2 values((select a from test1)+1);
Query OK, 1 row affected (0.00 sec)mysql> select * from test2;
+------+
| a |
+------+
| 2 |
+------+
1 row in set (0.00 sec)
你说的方式确实可以,但是我是为了描述问题,才把问题说的很简单,只有一个NUM。
真实的业务相当复杂,我关心是事务中的同步(就先查询,后插入)。