我有一些记录的mysql表,例如:
CREATE TABLE test (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
value varchar NOT NULL
)
现在,我需要的是在php脚本中生成1、2,…,N的唯一序列并将其存储到另一个表中……如何实现这一点是线程安全的,而不是创建双精度或跳过某些东西?
我想知道是否还有一些其他的mysql表可能有用,但是我不知道如何创建诸如“为每个列值分别自动递增”之类的东西.
test:
1 ... apples
2 ... oranges
3 ... lemons
一些php脚本(当时多个用户并行访问):
save_next_fruit($_GET['fruit']);
会在另一个表中创建一些具有如下值的记录:
saved_fruit:
ID | FRUIT(FK) | FRUIT_NO
1 1 1
2 1 2
3 2 1
4 3 1
5 3 2
6 1 3
7 3 3
8 2 2
9 1 4
10 2 3
11 1 5
12 2 4
13 1 6
14 3 4
15 3 5
换句话说,我需要这样做(例如,对于水果3(柠檬)):
insert into saved_fruit (fruit, fruit_no) values (3, select MAX(fruit_no)+1 from saved_fruit where fruit = 3);
但是以线程安全的方式(我知道上面的命令在MyISAM MySQL数据库中不是线程安全的)
你能帮我吗?
谢谢