Problème auto incrémentation mysql

Résolu/Fermé
Nicocaine Messages postés 7 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 14 mai 2007 - 9 mai 2007 à 09:22
Nicocaine Messages postés 7 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 14 mai 2007 - 9 mai 2007 à 15:59
Bonjour tout le monde,

J'ai actuellement une table temporaire sur mysql qui se présente comme suit:

CREATE TABLE TEMP_REQUESTER
(
id_req int,
Requester varchar(100),
PRIMARY KEY (id_req,Requester)
);

Dans cette table j'ai l'identifiant d'une requête(id_req) associé au nom du requester (Requester). Cependant je cherche à extraire de cette table dans une nouvelle table le nom de chaque requester différent (donc à l'aide d'un distinct) et lui affecter un numéro d'identifiant auto incrementé. J'ai essayé en faisant:

CREATE TABLE REQUESTER
SELECT id_Requester auto_increment, distinct(Requester) FROM TEMP_REQUESTER;

mais cela ne marche pas car id_requester n'existe pas dans temp_requester donc le select bloque. JE me demande donc s'il existerait une astuce pour ce problème.

Merci d'avance pour vos réponses.
A voir également:

2 réponses

Ohm-WorK Messages postés 1464 Date d'inscription mardi 25 octobre 2005 Statut Contributeur Dernière intervention 29 octobre 2019 420
9 mai 2007 à 11:18
Salut

Pour moi, il faut faire ca en deux requètes : une première qui crée la table requester avec 2 champs, id_requester en auto increment, et requester.

ensuite tu fais une requète insert qui insère le résultat d'une requète en select

insert into requester (select distinct(Requester) FROM TEMP_REQUESTER;

Tiens moi au courant :-)

Tchuss

La vie est une maladie mortelle, sexuellement transmissible (Woody Allen)
0
Nicocaine Messages postés 7 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 14 mai 2007
9 mai 2007 à 15:59
j'ai trouvé une autre solution possible:

je crée la table de la manière suivante:

CREATE TABLE REQUESTER
SELECT distinct(Requester) FROM TEMP_REQUESTER;

et ensuite j'ajoute par modification de la table une nouvelle colonne qui créé l'auto incrementation:

ALTER TABLE REQUESTER ADD id_requester INT UNSIGNED NOT NULL AUTO_INCREMENT,
ADD INDEX (id_requester);

je pense que ta solution marche aussi car c'est à peut près le même principe.
Merci bcp pour ta réponse
0