Können Sie Zugriff auf die auto-Inkrement-Wert in MySQL innerhalb einer Anweisung?

Ich habe eine MySQL-Datenbank enthält eine Tabelle der Benutzer. Der primary-key der Tabelle 'userid', die ein auto-Inkrement-Feld.

Was ich tun möchte, wenn ich legen Sie einen neuen Benutzer in die Tabelle den gleichen Wert, die auto-Inkrement ist die Schaffung der 'userid' - Feld in ein anderes Feld, 'default_assignment'.

z.B.

Möchte ich eine Aussage wie diese:

INSERT INTO users ('username','default_assignment') VALUES ('barry', value_of_auto_increment_field())

also ich erstelle user 'Barry', 'userid' generiert als 16 (zum Beispiel), aber ich möchte auch die "default_assignment' haben den gleichen Wert von 16.

Gibt es eine Möglichkeit, dies zu erreichen bitte?

Dank!

Update:

Danke für die Antworten. Die default_assignment Feld ist nicht redundant. Die default_assigment verweisen können alle Benutzer in der Benutzer-Tabelle. Beim anlegen eines Benutzers ich habe bereits ein Formular, das ermöglicht die Auswahl eines anderen Benutzers als der default_assignment, allerdings gibt es Fälle, in denen es gesetzt werden muss, um den gleichen Benutzer, daher meine Frage.

Update:

Ok, ich habe versucht die update-Trigger Vorschlag, aber immer noch kann nicht ankommen dieses zu wirken. Hier ist der Auslöser die ich angelegt habe:

CREATE TRIGGER default_assignment_self BEFORE INSERT ON `users`  
FOR EACH ROW BEGIN
SET NEW.default_assignment = NEW.userid;
END;

Beim einfügen eines neuen Benutzers jedoch die default_assignment ist immer auf 0 gesetzt.

Wenn ich manuell die userid dann die default_assignment nicht eingestellt dass die Benutzer-id.

Daher die automatische Zuordnung generation-Prozess deutlich passiert, nachdem der Auslöser wirksam wird.

InformationsquelleAutor der Frage TheKeys | 2009-01-22

Schreibe einen Kommentar