Ok donc je reste sur le script !
Parcontre pour retirer l'auto increment sur la clés primaire ca ne fonctionne pas (j'ai un message d'erreur) je l'ai fais graphiquement parcontre.
Ok donc je reste sur le script !
Parcontre pour retirer l'auto increment sur la clés primaire ca ne fonctionne pas (j'ai un message d'erreur) je l'ai fais graphiquement parcontre.
Du moment que c'est fait !
Si tu le fais graphiquement dans phpMyAdmin, en principe, il affiche la requête qu'il a exécutée pour faire l'opération.
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
Je préfere faire ça en commande pour laisser un script après cela. Parce que graphiquement j'ai fais un peu n'importe quoi vu que les requêtes DROP (pour la clés) ne passe pas ...
En exécutant les requêtes d'hier (pour supprimer la clés primaire, créer une nouvelle colonne t1_bdd et ajouter celle ci dans la clés primaire) j'ai le message suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Multiple primary key defined
Donner le message d'erreur sans donner ce qui a provoqué l'erreur ne sert pas à grand chose !
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
Ok, on reprends à 0 tes requêtes :
En tapant :
J'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ALTER TABLE BDD0.table1 DROP PRIMARY KEY;
(Le but est d'ajouter un champs d'identification de la BDD dans la clés primaire)
Code : Sélectionner tout - Visualiser dans une fenêtre à part Incorrect table definition; there can be only one auto column and it must be defined as a key
Merci.
C'est suite à ça que j'avais dit :
Regarde la doc pour te guider.Envoyé par CinéPhil
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
Ben évidemment !
Tu lui donnes la contrainte de ne pas être à NULL et tu lui donnes NULL comme valeur par défaut !
Code : Sélectionner tout - Visualiser dans une fenêtre à part NOT NULL DEFAULT NULL
Retire le DEFAULT NULL. Cette colonne est déjà valorisée dans les données que tu va y importer donc la valeur par défaut ne sert ici à rien.
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
J'ai supprimé l'auto incrémentation graphiquement (n'ayant pas trouver la commande sur la doc), j'obtient maintenant le message d'erreur suivant :
En exécutant la commande suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Error on rename of '.\bdd3\#sql-570_26e' to '.\bdd3\calibration' (errno: 150)
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ALTER TABLE BDD3.calibration DROP PRIMARY KEY;
Tu vas trop vite !
J'ai répondu à un de tes messages que tu as supprimé depuis !
Réfléchis avant de te précipiter sur le forum !
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
J'ai essayé plusieurs manipulations mais ça ne fonctionne toujours pas.
En testant la requête d'insertion avec une valeur identique la colonne dans la calibration_id, j'ai un ERREUR DUPLICATE KEY.
Et en mettant le DROP KEY par la suite, il ma pas retirer la clés jaune de la colonne calibration_id, uniquement celle de t1_bdd !
Merci!
Donne la description complète de ta table issue de la requête SHOW CREATE TABLE nom_de_la_table
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
Voilà la table sur les BDD, dans la BDD centralisée on ajoutera comme on a dit un champs t1_bdd pour identifier la BDD :
Je veux pouvoir entrer des données avec le même calibration_id provenant de BDD différentes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 'calibration', 'CREATE TABLE `calibration` ( `CALIBRATION_id` int(11) NOT NULL AUTO_INCREMENT, `CALIBRATION_Name` varchar(45) NOT NULL, `CALIBRATION_Tolerance` float DEFAULT NULL, `CALIBRATION_Validity_Time` int(11) NOT NULL, `CONFIG_CONFIG_id` int(11) NOT NULL, PRIMARY KEY (`CALIBRATION_id`), KEY `fk_CALIBRATION_CONFIG1` (`CONFIG_CONFIG_id`), CONSTRAINT `fk_CALIBRATION_CONFIG1` FOREIGN KEY (`CONFIG_CONFIG_id`) REFERENCES `config` (`CONFIG_id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin1'
Merci;
Essaie ceci (tu as le droit d'appeler la colonne BDD autrement bien sûr !) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 -- Suppression de l'auto_increment par redéfinition de la colonne ALTER TABLE calibration CHANGE CALIBRATION_id CALIBRATION_id int(11) NOT NULL; -- Suppression de la clé primaire ALTER TABLE calibration DROP PRIMARY KEY; -- Ajout de la colonne pour identifier la BDD d'où proviennent les données importées ALTER TABLE calibration ADD COLUMN BDD TINYINT NOT NULL; -- Définition de la nouvelle clé primaire ALTER TABLE calibration ADD PRIMARY KEY (BDD, CALIBRATION_id); -- Ajout d'un index sur CALIBRATION_id puisque ce n'est plus la première colonne de la clé primaire ALTER TABLE calibration ADD KEY (CALIBRATION_id);
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
A l'exécution de la 2éme requête j'ai le message d'erreur suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Error on rename of '.\bdd_site\#sql-570_29a' to '.\bdd_site\calibration' (errno: 150)
C'est pourtant la bonne syntaxe :
Il semble que l'errno: 150 soit due à la présence d'une clé étrangère qui fait référence à la clé primaire de cette table.Envoyé par Doc MySQL
Tu peux peut-être essayer de créer d'abord l'index sur la colonne puis supprimer la clé primaire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 -- Ajout d'un index sur CALIBRATION_id puisque ce n'est plus la première colonne de la clé primaire ALTER TABLE calibration ADD KEY (CALIBRATION_id); -- Suppression de la clé primaire ALTER TABLE calibration DROP PRIMARY KEY;
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
Ca marche, merci beaucoup !
Je te tiendrai au courant quant au script complet !
J'aimerai maintenant créer un script réutilisable, dans lequel je passe le nom de la BDD en variable, est ce possible de mettre ca dans le fichier SQL d'insertion vers la BDD commune ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager