Mein erster Gedanke ist, wenn Sie die zwei Werte in anderen Feldern haben, was ist die zwingende Notwendigkeit, sie redundant in einem dritten Feld zu speichern? Es geht um Normalisierung und Effizienz.
Wenn Sie einfach den verketteten Wert speichern möchten, dann können Sie einfach eine Ansicht (oder IMSNHO noch besser eine gespeicherte Prozedur) erstellen, die die Werte in ein Pseudo actor
Feld verkettet und Ihre Lesevorgänge aus der Ansicht/Sproc statt der Tabelle direkt.
Wenn Sie unbedingt den verketteten Wert speichern, müssen Sie dies auf zwei Arten umgehen konnte:
1) Verwenden Sie eine gespeicherte Prozedur Ihre Einsätze anstelle von gerade SQL zu tun. Auf diese Weise können Sie die Werte empfangen und einen Wert für das Feld bauen Sie wollen die Insert-Anweisung mit einer verketteten Wert für die Akteure Feld aufzufüllen dann zu bauen.
2) Also ich nicht zu viele Flammen ziehen, behandeln diesen Vorschlag mit Samthandschuhen. Verwenden Sie nur als letztes Mittel. Sie können dieses Verhalten hacken, indem Sie einen Trigger hinzufügen, um den Wert zu erstellen, wenn er null bleibt. Im Allgemeinen sind Trigger nicht gut.Sie fügen unsichtbare Kosten und Interaktionen zu relativ einfachen Interaktionen hinzu. Sie können jedoch das Feld CREATE TRIGGER verwenden, um das Feld actors zu aktualisieren, nachdem ein Datensatz eingefügt oder aktualisiert wurde. Hier ist die Referenzseite:
http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html
Ich habe nicht verwendet MySQL, aber wird dies immer die Spalte mit dem verketteten Wert überschreibt? Wenn Sie möchten, dass es als Standard verwendet wird, sollten Sie es überschreiben können, also würde ich denken, dass Sie auch eine Verschmelzung auf NEW.stage_name benötigen würden. –
@ bill-karwin Ich bekomme einen Syntaxfehler auf 'NEW.aka = CONCAT (NEW.fname, '', NEW.lname)' ... siehe mein vollständiger Befehl [** hier auf pastebin **] (http : //pastebin.com/FiEUBgcu) ... irgendwelche Hinweise ?? – mOrloff
@mOrloff, ich habe das Schlüsselwort 'SET' vergessen. Ich habe den obigen Code bearbeitet, um dies zu korrigieren. –