Copier une table dans la même base en gardant l' auto_incrément ? [Résolu]

Messages postés
104
Date d'inscription
samedi 6 novembre 2004
Dernière intervention
19 août 2015
- - Dernière réponse : cs_jeca
Messages postés
341
Date d'inscription
mercredi 17 juillet 2002
Dernière intervention
14 juillet 2011
- 11 sept. 2010 à 06:26
Bonjour,
J'essaye de faire la copie d'une table vers une autre (un clone en quelque sorte) en utilisant :
$sql="create table nouvelle_table as select * from ancienne table";
mysql_query($sql);
Mais je perd l'auto_increment et la primary key
comment faire pour les garder dans la structure ?

merci
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
104
Date d'inscription
samedi 6 novembre 2004
Dernière intervention
19 août 2015
3
Merci
en fait

$sql11="ALTER TABLE matable ADD PRIMARY KEY (id_nom)";
mysql_query($sql11);
$sql11="ALTER TABLE matable CHANGE id_nom id_non INT( 10 ) unsigned NOT NULL AUTO_INCREMENT ";
mysql_query($sql11);

merci

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 98 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_brezoneg
Messages postés
2492
Date d'inscription
jeudi 30 novembre 2006
Dernière intervention
14 janvier 2011
13
0
Merci
Salut,

Il suffit de remettre l'index comme il faut et modifier l'auto_increment :
ALTER TABLE `ma_table` ADD PRIMARY KEY (`column`);
ALTER TABLE `ma_table` AUTO_INCREMENT = 31415;


--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
Commenter la réponse de neigedhiver
Messages postés
341
Date d'inscription
mercredi 17 juillet 2002
Dernière intervention
14 juillet 2011
14
0
Merci
Bonjour,

Et comme ça ?
<?php
  $sql = 'CREATE TABLE nouvelle_table 
          LIKE ancienne_table';
  mysql_query($sql);
  
  $sql = 'INSERT INTO nouvelle_table (liste_des_colonnes) 
            SELECT (liste_des_colonnes) 
            FROM ancienne_table';
  mysql_query($sql);
?>


Cordialement.

JC
Commenter la réponse de cs_jeca
Messages postés
341
Date d'inscription
mercredi 17 juillet 2002
Dernière intervention
14 juillet 2011
14
0
Merci
Superbe solution. Pourquoi faire simple quand on peut faire compliqué ?


Cordialement.

JC
Commenter la réponse de cs_jeca

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.