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

cs_brezoneg 104 Messages postés samedi 6 novembre 2004Date d'inscription 19 août 2015 Dernière intervention - 9 sept. 2010 à 21:28 - Dernière réponse : cs_jeca 341 Messages postés mercredi 17 juillet 2002Date d'inscription 14 juillet 2011 Dernière intervention
- 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
cs_brezoneg 104 Messages postés samedi 6 novembre 2004Date d'inscription 19 août 2015 Dernière intervention - 10 sept. 2010 à 16:18
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

Merci cs_brezoneg 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 120 internautes ce mois-ci

Commenter la réponse de cs_brezoneg
neigedhiver 2492 Messages postés jeudi 30 novembre 2006Date d'inscription 14 janvier 2011 Dernière intervention - 9 sept. 2010 à 22:30
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
cs_jeca 341 Messages postés mercredi 17 juillet 2002Date d'inscription 14 juillet 2011 Dernière intervention - 10 sept. 2010 à 12:58
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
cs_jeca 341 Messages postés mercredi 17 juillet 2002Date d'inscription 14 juillet 2011 Dernière intervention - 11 sept. 2010 à 06:26
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.