zyklisches Autoincrement für jeden Schlüsselwert

Ich habe eine MySQL-Tabelle einiger Datensätze, z.

CREATE TABLE test (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  value varchar NOT NULL
) 

Jetzt muss ich eine eindeutige Sequenz von 1, 2, ..., N im PHP-Skript generieren und in einer anderen Tabelle speichern ... Wie kann ich dies erreichen, um thread-sicher zu sein und keine Doubles zu erstellen oder etwas zu überspringen?

Ich habe mich gefragt, ob eine zusätzliche MySQL-Tabelle hilfreich sein könnte, aber ich weiß nicht, wie ich so etwas wie "separate Autoincrements für jeden Spaltenwert" oder etwas anderes erstellen soll ...

test:
1 ... apples
2 ... oranges
3 ... lemons

Einige PHP-Skripte (auf die mehrere Benutzer gleichzeitig zugreifen):

save_next_fruit($_GET['fruit']); 

erstellt einen Datensatz in einer anderen Tabelle mit folgenden Werten:

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

Mit anderen Worten, ich muss dies tun (z. B. für Obst 3 (Zitronen)):

insert into saved_fruit (fruit, fruit_no) values (3, select MAX(fruit_no)+1 from saved_fruit where fruit = 3);

aber auf thread-sichere Weise (ich verstehe, dass der obige Befehl in MyISAM MySQL-Datenbank nicht thread-sicher ist)

Kannst du helfen?

Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage