Reqûête SQL : Importation sans doublon

Fermé
DarkBune Messages postés 185 Date d'inscription jeudi 12 janvier 2017 Statut Membre Dernière intervention 26 juillet 2021 - 27 janv. 2017 à 22:53
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 - 29 janv. 2017 à 11:57
Bonjour, j'aimerai importer des champs de glpi_computers dans glpi_reservationitems , mais je ne veux pas qu'il est de doublons .

Voila ma requête:

REPLACE glpi_reservationitems(items_id,itemtype)
SELECT id,itemtype
FROM glpi_computers;

Quand je fais 2 fois cette requête les doublons apparaissent , Avez-vous des solutions ? Merci

5 réponses

yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477
28 janv. 2017 à 14:49
Je te suggère de définir un index unique sur (items_id,itemtype) dans la table glpi_reservationitems
1
DarkBune Messages postés 185 Date d'inscription jeudi 12 janvier 2017 Statut Membre Dernière intervention 26 juillet 2021 7
28 janv. 2017 à 14:57
c'est-à-ddire un index unique ?
0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477
28 janv. 2017 à 15:05
tu as un outil qui te permet de modifier la structure de tes tables: avec cet outil, tu peux créer un index unique.
ou bien:
ALTER TABLE `glpi_reservationitems` 
ADD UNIQUE INDEX `uniq` (`items_id` ASC, `items_id` ASC);
0
DarkBune Messages postés 185 Date d'inscription jeudi 12 janvier 2017 Statut Membre Dernière intervention 26 juillet 2021 7
Modifié par DarkBune le 28/01/2017 à 15:24
ça me met : ERROR : Duplicate column name 'items_id' quand je fais votre requête
0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477
28 janv. 2017 à 16:03
ALTER TABLE `glpi_reservationitems` 
ADD UNIQUE INDEX `uniq` (`items_id` ASC, `itemtype` ASC);
0
DarkBune Messages postés 185 Date d'inscription jeudi 12 janvier 2017 Statut Membre Dernière intervention 26 juillet 2021 7
28 janv. 2017 à 16:44
Merci beaucoup ça marche parfaitement , merci pour votre temps
0
Utilisateur anonyme
27 janv. 2017 à 23:00
Bonjour,

pourquoi lancer 2 fois la requête ???

A+
0
DarkBune Messages postés 185 Date d'inscription jeudi 12 janvier 2017 Statut Membre Dernière intervention 26 juillet 2021 7
Modifié par DarkBune le 27/01/2017 à 23:11
Car je fais des ajouts d'équipements pour le mettre en mode réservation , il se peu que j'ajoute des nouveaux équipements au fil du temps et quand j'ajoute des nouveaux équipements et que je fais cette requête , dans ma partie réservation je vais avoir 2 fois le même nom du matériel que je pourrai ajouter en réservation
0
Utilisateur anonyme
27 janv. 2017 à 23:46
Je serais toi, je ferais un DELETE * FROM avant ta requête d'INSERT alors...

No ?

A+
0
DarkBune Messages postés 185 Date d'inscription jeudi 12 janvier 2017 Statut Membre Dernière intervention 26 juillet 2021 7
28 janv. 2017 à 11:39
Non je peux pas car ça va supprimer des réservations en cours
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
28 janv. 2017 à 12:46
Bonjour
Tu peux definir le champ items_id en primary_key
0
DarkBune Messages postés 185 Date d'inscription jeudi 12 janvier 2017 Statut Membre Dernière intervention 26 juillet 2021 7
Modifié par DarkBune le 28/01/2017 à 14:08
Bonjour , merci pour votre réponse mais ça me met : Multple primary key defined
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > DarkBune Messages postés 185 Date d'inscription jeudi 12 janvier 2017 Statut Membre Dernière intervention 26 juillet 2021
28 janv. 2017 à 14:11
Quelle est la structure de ta table ?
0
DarkBune Messages postés 185 Date d'inscription jeudi 12 janvier 2017 Statut Membre Dernière intervention 26 juillet 2021 7
28 janv. 2017 à 14:14
glpi_reservationitems: voila ses champs

-id
-itemtype
-entites_id
-is_recusirve
-items_id
-comment
-is_active
-is_delected
-name
0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477
28 janv. 2017 à 14:50
et quelle est la clé primaire sur cette table?
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024
29 janv. 2017 à 03:24
Vu le message d'erreur... et la structure de sa table ... je pense qu'il à mis un champ "id" (auto-incrementé) en guide de clé primaire.
Le tout est de savoir si ça lui est réellement utile...;
Si il ne souhaite pas avoir d'item en "doublon" ... il peut ( plusieurs choix possibles )
: Définir le champ items_id en tant que clé primaire (et retirer l'autre...)
ou définir le champ items_id en tant "unique" (tout en conservant l'id comme clé primaire)
après... je ne comprend pas son besoin de faire de INSERT SELECT (ou du REPLACE...) depuis son autre table dans celle là .....
A mon avis il ne connais pas les "jointures" et/ou ne sait pas les utiliser....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477
29 janv. 2017 à 11:57
bonjour DarkBune, c'est rarement une bonne idée de répliquer des données dans plusieurs tables: souhaites-tu vérifier avec nous si c'est la bonne solution pour toi?
0