2009-03-18 12 views

Antwort

6

Ab MySQL 5.0.2 können Sie eine Stored Procedure schreiben, die mit einer TRIGGER verknüpft ist. Sie kann die neue Spalte jedes Mal untersuchen, wenn eine Zeile eingefügt wird, und automatisch den Wert der anderen Spalte in die neue Spalte kopieren, wenn kein Wert angegeben wurde die neue Spalte.

+0

Danke für den Kommentar. Ich habe ursprünglich auch Auslöser gedacht, möchte mich aber von ihnen fernhalten. Da dies für meine unmittelbaren Bedürfnisse nicht sehr wichtig ist, gehe ich davon aus, dass dies in MySQL standardmäßig nicht möglich ist. Danke nochmal! –

1

erstellen Sie eine Ansicht, und Sie können die gleiche Spalte zweimal auswählen und geben Sie einen anderen Namen, dann kann die Anwendung die Ansicht stattdessen verwenden Sie die Tabelle direkt.

2

Ab 20101212 mysql unterstützt nicht standardmäßig 2 Zeitstempel Spalten, was bedeutet, dass Sie nicht erstellt und aktualisiert auf der gleichen Tabelle.

Wenn dies das ist, was Sie versuchen wollten, dann ist der Trigger mit dem gespeicherten Proc der richtige Weg.

3

Sie können diesen folgenden zwei Befehl verwenden, um Ihre Arbeit zu erledigen.

  1. Dieser Befehl wird verwendet, um eine neue Spalte in Ihrer Tabelle hinzuzufügen. Merken Sie sich den Datentyp, von dem Sie kopieren möchten, um diesen Datentyp in der neuen Spalte zu verwenden.

    ALTER TABLE table_name ADD new_column_name VARCHAR(60); 
    

2: Dieser Befehl Daten aus alten Spaltennamen zu neuen Spaltennamen zu kopieren.

UPDATE table_name SET new_column_name = old_column_name; 

Dann, wenn Sie vorherige Spalte löschen möchten, verwenden Sie können dann folgenden Befehl

ALTER TABLE table_name DROP COLUMN old_column_name; 
Verwandte Themen