Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL > Requêtes
Requêtes Forum d'entraide sur les requêtes SQL spécifiques à PostgreSQL, les triggers, les vues, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/01/2011, 17h32   #1
Nouveau Membre du Club
 
Christophe
Inscription : août 2009
Messages : 131
Détails du profil
Informations personnelles :
Nom : Christophe

Informations forums :
Inscription : août 2009
Messages : 131
Points : 26
Points : 26
Par défaut Générer du MD5 dans un INSERT INTO

Bonjour

Après avoir cherché sur le net, je n'ai pas trouvé ma réponse
Je m'adresse donc à vous.

Contexte :
J'ai un fichier de données qui doit alimenter une table.
Dans cette table réside un champ dont le contenu est une valeur de "type" MD5 généré par PHP.

Y a'y-il un moyen au moment d'un insert de créer cette valeur MD5 ?

Merci de votre aide
iviewclear est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2011, 18h03   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 990
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 990
Points : 18 241
Points : 18 241
Envoyer un message via MSN à CinePhil
Tu veux injecter une valeur déjà codée en MD5 par PHP ou tu veux coder le MD5 dans la requête SQL ?

Dans le premier cas, le MD5 est tout simplement une valeur textuelle à mettre dans une colonne de type CHAR(32).

Dans le second cas, il existe la fonction MD5('une_chaine') pour coder le MD5 en SQL.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2011, 19h02   #3
Nouveau Membre du Club
 
Christophe
Inscription : août 2009
Messages : 131
Détails du profil
Informations personnelles :
Nom : Christophe

Informations forums :
Inscription : août 2009
Messages : 131
Points : 26
Points : 26
Merci de ta réponse
Ma table de réception
id_enseigne
id_pdv --> clé primaire
md5 en char(11)
....

mon fichier de données à intégrer
1,1,"quelque chose à générer pour le champ md5"
1,2,"quelque chose à générer pour le champ md5"
etc....

Comment générer automatiquement une valeur MD5 dans mon insert ?
Code :
1
2
3
INSERT INTO pointdevente
VALUES (1,1,"une valeur md5")
VALUES (1,2,"une valeur md5")
Mon code php génère le MD5 avec en effet une fonction ou instruction md5
Mais là j'ai besoin d'intégrer 150 lignes d'un coup.
De plus, comment assurer l'unicité de la valeur md5 par rapport à celles déjà présentes dans la table de réception.

Je ne pense pas d'ailleurs que cela soit possible....
Là je me proposais ensuite de faire un select distinct quoique ma base risque de me prévenir si il existe des doublons
iviewclear est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2011, 11h04   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 990
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 990
Points : 18 241
Points : 18 241
Envoyer un message via MSN à CinePhil
Citation:
Envoyé par iviewclear Voir le message
mon fichier de données à intégrer
1,1,"quelque chose à générer pour le champ md5"
1,2,"quelque chose à générer pour le champ md5"
etc....

Comment générer automatiquement une valeur MD5 dans mon insert ?
INSERT INTO pointdevente
VALUES (1,1,"une valeur md5")
VALUES (1,2,"une valeur md5")

Mon code php génère le MD5 avec en effet une fonction ou instruction md5
Donc la valeur MD5 que tu as à insérer en BDD est une chaîne de 32 caractères.
Code :
SELECT MD5('une valeur en MD5')
=> 1e26e8bd1873259f741911192d78b9e2
Code :
1
2
INSERT INTO pointdevente
VALUES (1,1, '1e26e8bd1873259f741911192d78b9e2')
Tout simplement !

Citation:
Mais là j'ai besoin d'intégrer 150 lignes d'un coup.
Soit tu as une boucle dans ton code qui génère la requête avec les 150 insertions, soit ton code génère un fichier texte délimité et ensuite tu utilises LOAD DATA INFILE.
Citation:
De plus, comment assurer l'unicité de la valeur md5 par rapport à celles déjà présentes dans la table de réception.
Tu mets un index UNIQUE sur la colonne MD5 et tout doublon sera refusé par MySQL.
Avec INSERT IGNORE, tu évites le message d'erreur et l'arrêt des insertions.
Citation:
Envoyé par Doc MySQL
Si on spécifie le mot IGNORE dans un INSERT avec les valeurs de plusieurs lignes, chaque ligne qui qui ferait doublon avec une clé PRIMARY ou UNIQUE existante dans la table sera ignoré et ne sera pas insérée. Si on ne spécifie pas IGNORE, l'insertion est abandonnée si quelque ligne que ce soit fait doublon avec une clé existante.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2011, 09h55   #5
Nouveau Membre du Club
 
Christophe
Inscription : août 2009
Messages : 131
Détails du profil
Informations personnelles :
Nom : Christophe

Informations forums :
Inscription : août 2009
Messages : 131
Points : 26
Points : 26
Merci beaucoup
Je vais pouvoir m'en sortir
iviewclear est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h26.


 
 
 
 
Partenaires

Hébergement Web