Publicité
+ Répondre à la discussion Actualité déjà publiée
Page 2 sur 3 PremièrePremière 123 DernièreDernière
Affichage des résultats 21 à 40 sur 49
  1. #21
    Membre éclairé Avatar de Joe Le Mort
    Profil pro
    Inscrit en
    avril 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : avril 2006
    Messages : 392
    Points : 348
    Points
    348

    Par défaut

    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
    Tuxboard Blog d'actu Buzz...
    Video de sport

  2. #22
    Expert Confirmé Sénior
    Avatar de berceker united
    Profil pro
    Développeur informatique
    Inscrit en
    février 2005
    Messages
    3 142
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : février 2005
    Messages : 3 142
    Points : 4 360
    Points
    4 360

    Par défaut

    Voici une fonction qui permet de mettre le premier caractère en majuscule. Mysql5

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    CREATE FUNCTION `ucfirst`(p_str VARCHAR(255))
        RETURNS varchar(255)
        NOT DETERMINISTIC
        CONTAINS SQL
        SQL SECURITY DEFINER
        COMMENT ''
    BEGIN
         DECLARE strOut VARCHAR(255);
         SET strOut = TRIM(p_str);
         SET strOut = CONCAT(UPPER(LEFT(strOut,1)), RIGHT(strOut,CHARACTER_LENGTH(strOut)-1));
         RETURN strOut;
    END;
    N'étant pas satisfait du uuid() mysql pour une raison particulière je m'en suis fait une.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    CREATE FUNCTION `UUIDII`()
        RETURNS char(36)
        DETERMINISTIC
        CONTAINS SQL
        SQL SECURITY DEFINER
        COMMENT ''
    BEGIN
         DECLARE hashe1 VARCHAR(8);
         DECLARE hashe2 CHAR(4);
         DECLARE hashe3 CHAR(4);
         DECLARE hashe4 CHAR(4);
         DECLARE hashe5 CHAR(12);
         DECLARE hasheRef CHAR(36);
     
         SET hashe1 = SUBSTRING(MD5(RAND()),25);
         SET hashe2 = SUBSTRING(MD5(RAND()),29);
         SET hashe3 = SUBSTRING(MD5(RAND()),29);
         SET hashe4 = SUBSTRING(MD5(RAND()),29);
         SET hashe5 = SUBSTRING(MD5(RAND()),21);
         SET hasheRef = CONCAT_WS('-', hashe1, hashe2, hashe3, hashe4, hashe5);
         RETURN hasheRef;
    END;
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  3. #23
    Membre Expert
    Avatar de Alexandre T
    Profil pro
    Inscrit en
    mai 2002
    Messages
    1 023
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : mai 2002
    Messages : 1 023
    Points : 1 482
    Points
    1 482

    Par défaut

    Citation Envoyé par Joe Le Mort Voir le message
    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
    Il existe une norme (déclinée) pour cela : ISO 3611. Je pense qu'un lien vers cette norme est préférable, car constamment à jour.
    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

  4. #24
    Membre Expert
    Avatar de Alexandre T
    Profil pro
    Inscrit en
    mai 2002
    Messages
    1 023
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : mai 2002
    Messages : 1 023
    Points : 1 482
    Points
    1 482

    Par défaut

    Citation Envoyé par berceker united Voir le message
    N'étant pas satisfait du uuid() mysql pour une raison particulière je m'en suis fait une.
    Merci

    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

  5. #25
    Expert Confirmé Sénior
    Avatar de berceker united
    Profil pro
    Développeur informatique
    Inscrit en
    février 2005
    Messages
    3 142
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : février 2005
    Messages : 3 142
    Points : 4 360
    Points
    4 360

    Par défaut

    Citation Envoyé par Alexandre T Voir le message
    Merci

    Juste une question : Quelle est cette raison ? On pourrait peut-être la commenter ainsi.
    En fait, je me suis intéressé à ça pour pa passer les identifiant d'enregistrement en paramètre. productid=12. 12 qui correspond un l'id d'un enregistrement dans une table. Pour un produit pas de probleme si c'est à 12 mais un concurrent voi 12785. Surtout qu'il peut savoir que les données sont autoincrémenté. En terme de sécurité c'est un peut risqué de mettre des données sensible.
    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 !...

  6. #26
    Membre émérite
    Inscrit en
    janvier 2006
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : janvier 2006
    Messages : 967
    Points : 822
    Points
    822

    Par défaut

    Petite proposition : comment désactiver la commande (destructrice) DROP DATABASE avec PhpMyAdmin :
    http://www.developpez.net/forums/sho...d.php?t=403838

  7. #27
    Expert Confirmé Sénior
    Avatar de berceker united
    Profil pro
    Développeur informatique
    Inscrit en
    février 2005
    Messages
    3 142
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : février 2005
    Messages : 3 142
    Points : 4 360
    Points
    4 360

    Par défaut

    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    CREATE PROCEDURE `Split`(IN p_str TEXT, IN p_delimiter CHAR(1))
        DETERMINISTIC
        CONTAINS SQL
        SQL SECURITY INVOKER
        COMMENT ''
    BEGIN
         DECLARE Pos INTEGER(11);
         DECLARE sub_Str TEXT;
     
         SET Pos     = 1;
         SET sub_Str = '';
     
         BEGIN
              CREATE TEMPORARY TABLE IF NOT EXISTS t_split(
                     `idItem` INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT,
                     `Item` TEXT,
                     PRIMARY KEY  (`idItem`)
              ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT = 'Tempory table';
         END;
     
         TRUNCATE t_split;
     
         COMMIT;
     
         WHILE Pos <= LENGTH(p_str) DO
               BEGIN
                    IF SUBSTRING(p_str, Pos, 1) <> p_delimiter THEN
    				   SET sub_Str = CONCAT(sub_Str, SUBSTRING(p_str, Pos, 1));
    		        ELSE
    					INSERT INTO t_split (Item) VALUES(sub_Str);
    					SET sub_Str = '';		
                    END IF;
     
                    IF LENGTH(p_str) = Pos THEN
                       INSERT INTO t_split (Item) VALUES(sub_Str);
                    END IF;
     
                    SET Pos = (Pos + 1);
               END;
         END WHILE;
         SELECT * FROM t_split;
    END;
     
    CALL Split('titi|tata|tutu','|');
    SELECT * FROM t_split;
    La procédure stocké va envoyé le resultat dans une table temporaire nommé t_split.
    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 !...

  8. #28
    Membre habitué
    Homme Profil pro Michel Plomteux
    formateur web, linux
    Inscrit en
    mars 2002
    Messages
    105
    Détails du profil
    Informations personnelles :
    Nom : Homme Michel Plomteux
    Âge : 64
    Localisation : Belgique

    Informations professionnelles :
    Activité : formateur web, linux
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2002
    Messages : 105
    Points : 147
    Points
    147

    Par défaut

    Citation Envoyé par le lynx Voir le message

    J'y voit pas la réponse à mon problème: comment interfacer une appli ASP.NET avec MySQL, quel driver utiliser?
    Une info qui pourrait intéresser pas mal de gens!

    Philippe
    ODBC et le driver fournit par mysql non

  9. #29
    Expert Confirmé Sénior
    Avatar de berceker united
    Profil pro
    Développeur informatique
    Inscrit en
    février 2005
    Messages
    3 142
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : février 2005
    Messages : 3 142
    Points : 4 360
    Points
    4 360

    Par défaut

    Citation Envoyé par Michel Voir le message
    ODBC et le driver fournit par mysql non
    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 !...

  10. #30
    Membre éprouvé Avatar de nounetmasque
    Inscrit en
    janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : janvier 2003
    Messages : 494
    Points : 484
    Points
    484

    Par défaut

    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 :
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT
          YEAR(NOW()) - YEAR(DATE_NAISSANCE) +
          IF(DATEDIFF(
               STR_TO_DATE(CONCAT('0001', DATE_FORMAT(NOW(), '%d%m')), '%Y%d%m'),
               STR_TO_DATE(CONCAT('0001', DATE_FORMAT(DATE_NAISSANCE, '%d%m')), '%Y%d%m')
             ) < 0, -1, 0)
    FROM DUAL
    En espérant que ce bout de code puisse aider du monde
    "Dieu reste muet, si seulement nous pouvions convaincre l'être humain d'en faire autant."

  11. #31
    Invité régulier
    Inscrit en
    mai 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : mai 2007
    Messages : 6
    Points : 6
    Points
    6

    Par défaut Suggestion pour la FAQ

    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 :
    1
    2
    3
    4
    $req = "SHOW TABLE STATUS LIKE 'MATABLE'";
    $res = mysql_query($req);
    $q = mysql_fetch_object($res);
    echo "La prochaine valeur sera : ".$q->AUTO_INCREMENT;

  12. #32
    Membre Expert
    Avatar de Alexandre T
    Profil pro
    Inscrit en
    mai 2002
    Messages
    1 023
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : mai 2002
    Messages : 1 023
    Points : 1 482
    Points
    1 482

    Par défaut

    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

  13. #33
    Invité régulier
    Inscrit en
    mai 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : mai 2007
    Messages : 6
    Points : 6
    Points
    6

    Par défaut

    Citation Envoyé par Alexandre T Voir le message
    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.
    Tu pourrais donner un exemple avec ton NEXTVAL() ? car je connais pas du tout et je comprend pas l'histoire de requete concurente. Merci

  14. #34
    Expert Confirmé
    Avatar de Alain Defrance
    Homme Profil pro Alain DEFRANCE
    Project Lead
    Inscrit en
    août 2007
    Messages
    1 994
    Détails du profil
    Informations personnelles :
    Nom : Homme Alain DEFRANCE
    Âge : 26
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Project Lead

    Informations forums :
    Inscription : août 2007
    Messages : 1 994
    Points : 3 838
    Points
    3 838

    Par défaut

    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

  15. #35
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro Antoine Dinimant
    Architecte décisionnel
    Inscrit en
    octobre 2006
    Messages
    5 943
    Détails du profil
    Informations personnelles :
    Nom : Homme Antoine Dinimant
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : octobre 2006
    Messages : 5 943
    Points : 10 381
    Points
    10 381

    Par défaut

    http://mysql.developpez.com/faq/?pag..._INCREMENT_max

    Par contre, c'est bien la première fois que j'entends parler de séquences et de NEXTVAL dans MySQL... Alex, tu confirmes ?
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase est parue !

  16. #36
    Expert Confirmé
    Avatar de Alain Defrance
    Homme Profil pro Alain DEFRANCE
    Project Lead
    Inscrit en
    août 2007
    Messages
    1 994
    Détails du profil
    Informations personnelles :
    Nom : Homme Alain DEFRANCE
    Âge : 26
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Project Lead

    Informations forums :
    Inscription : août 2007
    Messages : 1 994
    Points : 3 838
    Points
    3 838

    Par défaut

    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.

  17. #37
    Membre Expert
    Avatar de Alexandre T
    Profil pro
    Inscrit en
    mai 2002
    Messages
    1 023
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : mai 2002
    Messages : 1 023
    Points : 1 482
    Points
    1 482

    Par défaut

    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

  18. #38
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro Antoine Dinimant
    Architecte décisionnel
    Inscrit en
    octobre 2006
    Messages
    5 943
    Détails du profil
    Informations personnelles :
    Nom : Homme Antoine Dinimant
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : octobre 2006
    Messages : 5 943
    Points : 10 381
    Points
    10 381

    Par défaut

    Citation Envoyé par Alexandre T Voir le message
    Nous estimons (c'est un constat personnel lié à nos applications) que l'autoincrémentation n'est pas une solution intéressante.
    Par curiosité, qu'est-ce qui vous a amené à cette conclusion ?
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase est parue !

  19. #39
    Membre Expert
    Avatar de Alexandre T
    Profil pro
    Inscrit en
    mai 2002
    Messages
    1 023
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : mai 2002
    Messages : 1 023
    Points : 1 482
    Points
    1 482

    Par défaut

    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    Appel de la séquence des personnes
    Appel de la séquence des adresses
    Requête pour récupérer le code du groupe par défaut
    Début de transaction
    Insertion dans la TABLE des personnes des valeurs avec la séquence des personnes
    Insertion dans la TABLE des groupes d'utilisateurs des valeurs obtenues avec la séquence des personnes et de la requête des groupes
    Insertion dans la table 3 des valeurs des séquences 1 et 2
    Fin de transaction
    Nous avons remarqué que de grouper les trois insertions étaient moins problématiques que de faire des sélections entre. En effet, les verrous sont moins longtemps présents. (Et quand nous insérons des données à chaque fois qu'un véhicule passe devant une cellule c'est important de diminuer la durée des verrous)

    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE TABLE animals (
                 grp ENUM('fish','mammal','bird') NOT NULL,
                 id MEDIUMINT NOT NULL AUTO_INCREMENT,
                 name CHAR(30) NOT NULL,
                 PRIMARY KEY (grp,id)
                 );
    INSERT INTO animals (grp,name) VALUES("mammal","dog"),("mammal","cat"),
                      ("bird","penguin"),("fish","lax"),("mammal","whale"),
                      ("bird","ostrich");
    SELECT * FROM animals ORDER BY grp,id;
    Cela retourne :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    +--------+----+---------+
    | grp    | id | name    |
    +--------+----+---------+
    | fish   |  1 | lax     |
    | mammal |  1 | dog     |
    | mammal |  2 | cat     |
    | mammal |  3 | whale   |
    | bird   |  1 | penguin |
    | bird   |  2 | ostrich |
    +--------+----+---------+
    Dans nos applications c'est utile. Imaginez notre table des tronçons d'autoroute. On ne gère pas dans mysql l'ordre. On balance nos scripts en classant juste les tronçons dans l'ordre, sans gérer les numéros, MySQL fait le reste. Dans PostGreSQL, on doit nous même inventer ces numéros ou mettre une séquence, qui ne fera pas attention à la première valeur de la table. (bref qui ne recommencera pas à 1 en somme, pour chaque autoroute)
    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

  20. #40
    Membre habitué

    Inscrit en
    février 2004
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : février 2004
    Messages : 343
    Points : 148
    Points
    148

    Par défaut

    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 ?

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •