2010-04-04 8 views
1

La nouvelle table a un incrément automatique que je veux utiliser pour les données que je transfère.Comment insérer des lignes dans une nouvelle table et mettre à jour la clé primaire des éléments transportés?

Voici la requête que je veux exécuter.

INSERT INTO `xyz_1mydata` SELECT * FROM `xyz_1production` WHERE `xyz_1production.Id` > '12000'; 

Je ne souhaite pas remplacer les éléments existants dans # _1mata.

+0

voulez-vous dire que vous ne voulez pas insérer un enregistrement de production dans mydata s'il y a déjà un identifiant correspondant? – Unreason

Répondre

2

Liste tous les champs que vous souhaitez transférer dans votre requête. Dans ce cas, tous les champs sauf le champ Id. De cette façon, les lignes insérées dans xyz_1mydata obtiendront des identifiants nouvellement générés. Expliquez ce que signifie les éléments existants dans # _1mydata?

INSERT INTO xyz_1mydata (field1, field2, ...) 
    SELECT field1, field2, ... FROM xyz_1production... 
+0

Merci Matti, ça a l'air très simple. –

Questions connexes