|
Publicité ' | |||||||||||||||||||||||
|
|
#21 |
|
Membre éclairé
![]() |
Je propose quelque chose pour la communauté :
La liste des pays francais/anglais avec les codes avec insertion dans MYSQL. Télécharger le fichier, plus d'infos sur le site |
|
|
00
|
|
|
#22 | ||||
|
Expert Confirmé
![]() ![]() Développeur informatique Inscription : février 2005 Messages : 3 030 ![]() |
Voici une fonction qui permet de mettre le premier caractère en majuscule. Mysql5
Code :
Code :
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
||||
|
|
00
|
|
|
#23 | |
|
Membre Expert
![]() ![]() Inscription : mai 2002 Messages : 1 023 ![]() |
Citation:
__________________
Alexandre T. PHP5/MySQL5 Codes prêts à l'emploi 30 projets avec codes sources complets pour créer diaporamas photos, chat, arbre généalogique, statistiques de visites, création de graphiques, moteur de recherche, Sudoku etc... Mes articles |
|
|
|
00
|
|
|
#24 | |
|
Membre Expert
![]() ![]() Inscription : mai 2002 Messages : 1 023 ![]() |
Citation:
Juste une question : Quelle est cette raison ? On pourrait peut-être la commenter ainsi.
__________________
Alexandre T. PHP5/MySQL5 Codes prêts à l'emploi 30 projets avec codes sources complets pour créer diaporamas photos, chat, arbre généalogique, statistiques de visites, création de graphiques, moteur de recherche, Sudoku etc... Mes articles |
|
|
|
00
|
|
|
#25 | |
|
Expert Confirmé
![]() ![]() Développeur informatique Inscription : février 2005 Messages : 3 030 ![]() |
Citation:
le UUID peut fausser l'information et ne montre aucune hiérarchie ni un sens logic à un paramètre. Apparement il se base sur des identifiant reseau. Ce qui affiche un peut pret toujours les mêmes données (12 premiers caractères) mais sans qu'elle puisse être identique. Je voulais rendre l'information plus flou. J'ai donc fait un UUID() à ma sauce. J'ai une table qui possède tous les id utilisés afin qu'il ne puisse en créer un indentique. Toute les tables qui doivent communiquer avec l'extérieur doivent passer par cette table "Table InOut". Pour des raisons de développment et de maintenance chaque enregistrement de cette table (InOut) possède le nom de la table et id qui l'utilise. Ainsi je peux savoir qui utilise cette uuid.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
|
00
|
|
|
#26 |
|
Membre émérite
![]() Inscription : janvier 2006 Messages : 953 ![]() |
Petite proposition : comment désactiver la commande (destructrice) DROP DATABASE avec PhpMyAdmin :
http://www.developpez.net/forums/sho...d.php?t=403838 |
|
|
00
|
|
|
#27 | ||
|
Expert Confirmé
![]() ![]() Développeur informatique Inscription : février 2005 Messages : 3 030 ![]() |
Voici une fonction permettant de faire une split d'une chaine. Celui-ci retourne un tableau. En fait, ce n'est pas une fonction mais une procédure stocké. La raison est qu'une fonction n'accepte pas des chaines de caractère avec des accents.
Code :
Si vous executez la procédure il vous retourne une table avec deux champs IdItem et Item. De là, vous pouvez encore récupérer le resultat en faisant select * from t_split pour travailler dessus.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
||
|
|
00
|
|
|
#28 |
|
Membre habitué
![]() Michel Plomteuxformateur web, linux Inscription : mars 2002 Messages : 99 ![]() |
|
|
|
00
|
|
|
#29 |
|
Expert Confirmé
![]() ![]() Développeur informatique Inscription : février 2005 Messages : 3 030 ![]() |
Je rajouterais même MyODBC
Le driver odbc pour Mysql
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
00
|
|
|
#30 | ||
|
Membre éprouvé
![]() Inscription : janvier 2003 Messages : 491 ![]() |
Bonjour,
je ne sais pas trop si cette question est déjà posée dans la FAQ, en tout cas j'ai rencontré le problème ce matin à savoir calculer l'âge d'un individu en fonction de sa date de naissance au format date %d/%m/%Y et je propose cette solution : Code :
__________________
"Dieu reste muet, si seulement nous pouvions convaincre l'être humain d'en faire autant." |
||
|
|
00
|
|
|
#31 | ||
|
Invité régulier
![]() |
J'ai une suggestion pour la faq
Connaitre la prochaine valeur d'un champ auto-incrémenté L'information se trouve dans le STATUS de la table. Code :
|
||
|
|
00
|
|
|
#32 |
|
Membre Expert
![]() ![]() Inscription : mai 2002 Messages : 1 023 ![]() |
Je déconseille fortement cette pratique. En effet, si elle fonctionne quand un seul utilisateur est connecté à la base de données, elle sera source d'erreur dans le cas de requêtes concurrentes. Je conseille plutôt de sélectionner la prochaine valeur avec NEXTVAL() et ensuite de s'en servir (ou pas). Si on ne se sert pas de la prochaine valeur, on perd juste un numéro dans l'incrémentation, et personne n'en mourra. On place rarement un champ autoincrémenté sur un entier très court.
__________________
Alexandre T. PHP5/MySQL5 Codes prêts à l'emploi 30 projets avec codes sources complets pour créer diaporamas photos, chat, arbre généalogique, statistiques de visites, création de graphiques, moteur de recherche, Sudoku etc... Mes articles |
|
|
00
|
|
|
#33 | |
|
Invité régulier
![]() |
Citation:
|
|
|
|
00
|
|
|
#34 |
|
Expert Confirmé
![]() ![]() |
Bonjour,
En effet il est déconseillé d'appliquer l'identification d'un tuple coté applicatif (ici PHP). Si deux personnes accèdent à cette page quasi-simultanément, alors ils auront strictement la même valeur d'auto-increment. Si ensuite ils affectent cette valeur comme identifiant lors d'un insert, le premier à executer la requête n'y verra rien, mais le second sera sanctionné sans doute d'une violation de l'intégritée référentielle. Avec NEXTVAL, lors de son appel, on récupère la valeur suivante, mais l'auto-increment est également incrémenté. Ainsi, même avec deux requêtes quasi-simultanées, les deux client auront deux clé différentes, et il n'y a plus de risques au niveau de l'intégritée. A ma connaissances NEXTVAL existe que sur des sequences, qui sont des objets dédiés à l'identification de tuples. Je t'invite donc à te renseigner a leurs sujets
__________________
http://alaindefrance.wordpress.com - http://www.alain-defrance.com Certifications : SCJP6 - SCWCD5 - SCBCD5 - SCMAD1 Project Lead eXo Social Java Black Belt - Java Black Belt Coach |
|
00
|
|
|
#35 |
![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 877 ![]() |
http://mysql.developpez.com/faq/?pag..._INCREMENT_maxPar contre, c'est bien la première fois que j'entends parler de séquences et de NEXTVAL dans MySQL... Alex, tu confirmes ? |
|
|
00
|
|
|
#36 |
|
Expert Confirmé
![]() ![]() |
Je me suis peut-être mal exprimé. Quand je parle de sequence et NEXTVAL je ne faisait qu'expliquer le fonctionnement d'une séquence, faisant référence au message d'Alex.
Pour ma part je n'ai également jamais croisé de sequences avec MySQL, mais rien ne nous empeche de les reproduire si besoin il y a.
__________________
http://alaindefrance.wordpress.com - http://www.alain-defrance.com Certifications : SCJP6 - SCWCD5 - SCBCD5 - SCMAD1 Project Lead eXo Social Java Black Belt - Java Black Belt Coach |
|
00
|
|
|
#37 |
|
Membre Expert
![]() ![]() Inscription : mai 2002 Messages : 1 023 ![]() |
Je pense que celui qui s'est le plus mal exprimé c'est moi surtout. Je travailles désormais essentiellement sous Postgres et nous migrons nos applications sous MySql pour certains clients qui ont déjà un serveur MySQL et qui ne veulent pas d'un second serveur de base de données.
Nous estimons (c'est un constat personnel lié à nos applications) que l'autoincrémentation n'est pas une solution intéressante. Alors nous avons reproduit le fonctionnement des séquences. La méthode est simple, si simple que j'en oublie que ce n'est pas un module de MySQL. On crée une table avec un champ identifiant la table et la valeur de la clef. Un des développeurs de notre équipe a créé les fonctions qui vont avec les séquences (currval, nextval, setval). Le premier paramètre de cette valeur est l'identifiant de la table. Malheuresement les copyright actuels sur ce code ne me permettent pas de le communiquer. Comme nous sommes dans une politique d'ouverture de code au sein du MEEDDATT, je vais essayer de voir.
__________________
Alexandre T. PHP5/MySQL5 Codes prêts à l'emploi 30 projets avec codes sources complets pour créer diaporamas photos, chat, arbre généalogique, statistiques de visites, création de graphiques, moteur de recherche, Sudoku etc... Mes articles |
|
|
00
|
|
|
#38 |
![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 877 ![]() |
Par curiosité, qu'est-ce qui vous a amené à cette conclusion ?
|
|
|
00
|
|
|
#39 | ||||||
|
Membre Expert
![]() ![]() Inscription : mai 2002 Messages : 1 023 ![]() |
Alors je précise avant tout qu'ici, je n'exprime qu'une opinion personnelle. Ce n'est en rien une vérité. L'auto incrémentation est très interessante dans 98% des cas. Une clef primaire auto-incrémentée sans séquence est pratique sauf dans deux cas à mon sens
Le premier cas concerne les procédures qui nécessitent plusieurs évènements. Nous trouvons préférable de faire appel à tous les identifiants avant les insertions, puis de tout insérer d'un bloc. Code :
Une autre utilité est pour certaines clefs plus "naturelles". L'autoincrémentation de Mysql simule en fait une séquence commençant à et avec un pas de 1. Nous avons parfois besoin d'avoir un pas différent. Il est rarement de 2 ou 3 ou quelquechose comme cela. Mais régulièrement nous avons besoin (pour des raisons historiques) de pas de -1. (Une autre utilité des séquences vient dans le portage des procédures stockées de PostGreSQL à MySQL, le portage du code se simplifie car on a juste à rajouter un argument dans la fonction nextval, alors que sinon on doit parfois réfléchir à changer l'ordre de l'algortihme.) PAr contre, ce que je trouve vraiment génial dans MySQL, c'est l'autoincrémentation sur une colonne secondaire ! Pour des notions de rang, c'est vraiment génial, et je n'arrive pas à le reproduire avec les séquences dans PostGreSQL. Exemple de la documentation (regardez bien sur quoi porte la clef primaire) Code :
Code :
__________________
Alexandre T. PHP5/MySQL5 Codes prêts à l'emploi 30 projets avec codes sources complets pour créer diaporamas photos, chat, arbre généalogique, statistiques de visites, création de graphiques, moteur de recherche, Sudoku etc... Mes articles |
||||||
|
|
00
|
|
|
#40 |
|
Membre habitué
![]() ![]() Inscription : février 2004 Messages : 342 ![]() |
salut,
en passant en revue la faq mysql, je n'y ai pas trouvé une entrée qui me paraissait pourtant simple et "frequente": comment mettre les données de mysql ailleurs que dans le répertoire par défaut (/var/lib/mysql) ? il m'est arrivé un truc tt bete recemment : /var/lib/mysql était sur une partition systeme de taille modeste (c'est le cas sur la plupart des servers loués par defaut). Or en entame de nouveau projet qui fait appel à des volumes de données importants, j'ai saturé cette partition avec les données de mysql. il me fallait donc déplacer le répertoire des données de mysql. apres bon... je n'ai pas écrit une belle entrée de FAQ bien propre, je ne dis pas non plus que je saurais en écrire une qui marcherait sur tous les systemes, mais si ca peut aider des gens, je veux bien en écrire une et la proposer ici une telle entrée aurait-elle sa place dans la faq mysql ? ca interesse qqn ? |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com