2017-02-23 2 views
1

J'ai deux tables, tab1 et tab2. Tab2 a toutes les colonnes de tab1 mais avec une colonne supplémentaire pour un timestamp. Ce que je veux faire est de copier toutes les lignes de tab1 dans tab2 et d'entrer en même temps la colonne timestamp pour toutes les lignes que j'insère. Je peux obtenir et entrer le temps bien, mais je suis confus comment copier et insérer des données et remplir la dernière colonne avec l'horodateur pour toutes les rangées que j'ai insérées.MySQL: Copier la table dans une autre table avec une colonne supplémentaire

Je veux faire:

Insert into tab2 select * from tab1 

mais je veux aussi ajouter des données pour cette dernière colonne tab2, comment puis-je faire cela?

Répondre

1

Vous pouvez ajouter l'horodatage à la liste de sélection si la liste des colonnes des deux tables correspondraient:

INSERT INTO tab2 
SELECT *, CURRENT_TIMESTAMP() 
FROM tab1 

EDIT
Pour répondre à la question dans le commentaire - vous ne devez pas utiliser CURRENT_TIMESTAMP(). Toute expression renvoyant un horodatage ferait l'affaire. Vous pouvez utiliser un horodatage codé en dur:

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

Bonne idée, mais je ne veux pas nécessairement aller chercher l'heure actuelle et l'utiliser. Si je voulais mettre une valeur statique, comment ferais-je cela? Pourrais-je remplacer "CURRENT_TIMESTAMP()" par quelque chose comme "2017-07-07 19:43:00"? –

+0

Je me suis installé sur INSERT INTO tab1 SELECT *, '07/07/07 19:43:00 'DE tab1. Merci –