2017-02-23 3 views
1

Ich habe zwei Tabellen, Tab1 und Tab2.MySQL: Kopiere Tabelle in eine andere Tabelle mit einer zusätzlichen Spalte

Tab2 hat alle Spalten von Tab1, aber mit einer zusätzlichen Spalte für einen Zeitstempel. Ich möchte alle Zeilen von Tab1 in Tab2 kopieren und die gleiche Zeit wie die Timestamp-Spalte für alle Zeilen eingeben, die ich einfüge. Ich kann die Zeit erhalten und eingeben, aber ich bin verwirrt, wie man Daten kopiert und einfügt und die letzte Spalte mit dem Zeitstempel für alle Reihen füllt, die ich einfügte.

Deshalb möchte ich tun:

Insert into tab2 select * from tab1 

aber ich möchte auch die letzte Spalte in tab2 Daten hinzufügen, wie kann ich das tun?

Antwort

1

Sie können den Zeitstempel auf die Auswahlliste hinzufügen, damit die Spaltenlisten beiden Tabellen übereinstimmen würden:

INSERT INTO tab2 
SELECT *, CURRENT_TIMESTAMP() 
FROM tab1 

EDIT
Um die Frage in dem Kommentar zu antworten - Sie haben nicht zu verwenden, CURRENT_TIMESTAMP(). Jeder Ausdruck, der einen Zeitstempel zurückgibt, würde dies tun. Sie könnten einen fest codierten Zeitstempel verwenden:

INSERT INTO tab2 
SELECT *, TIMESTAMP('2017-07-07 19:43:00') 
FROM tab1 
+0

Tolle Idee, aber ich möchte nicht unbedingt die aktuelle Zeit abrufen und diese verwenden. Wenn ich einen statischen Wert eingeben möchte, wie würde ich das tun? Könnte ich "CURRENT_TIMESTAMP()" durch etwas wie "2017-07-07 19:43:00" ersetzen? –

+0

Ich entschied mich für INSERT INTO tab1 SELECT *, '07/07/07 19:43:00 'FROM tab1. Vielen Dank –

Verwandte Themen