MySQL: Add sequence-Spalte basierend auf einem anderen Feld
Arbeite ich an einigen legacy code/Datenbank, und brauchen, um ein Feld hinzuzufügen in die Datenbank die Aufzeichnung einer Sequenz Anzahl Verwandte, zu, dass (ausländische) id.
Beispiel-Tabelle Daten (Strom):
ID ACCOUNT some_other_stuff
1 1 ...
2 1 ...
3 1 ...
4 2 ...
5 2 ...
6 1 ...
Muss ich hinzufügen sequenceid-Säule, die-Schritten separat für jedes Konto erreichen:
ID ACCOUNT SEQ some_other_stuff
1 1 1 ...
2 1 2 ...
3 1 3 ...
4 2 1 ...
5 2 2 ...
6 1 4 ...
Beachten Sie, dass die Sequenz in Bezug auf account.
Gibt es eine Möglichkeit kann ich erreichen das in SQL, oder muss ich noch auf ein PHP-Skript, um die Arbeit zu tun für mich?
TIA,
Kev
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollte dies funktionieren, ist aber wahrscheinlich langsam:
Habe ich aufgerufen, die Tabelle 'test'; natürlich, die muss richtig eingestellt werden. Sie haben für die Verwendung einer temporären Tabelle, da MySQL wird nicht lassen Sie eine Unterauswahl aus der gleichen Tabelle, die Sie aktualisieren.
Einen trigger erstellen:
Die Frage markiert, wie "mysql", also ja, MySQL auto_increment erstellen können groupwise-sequenzielle ids.
sehen http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html:
edit: Beispiel php-Skript (mit PDO, aber es ist das gleiche Spiel mit der php-mysql Modul)
Drucke