Fonctions d'informations
<<<
Fonctions diverses Fonctions à utiliser dans les clauses SELECT et WHERE
>>>

13.8 Autres fonctions
13 Fonctions à utiliser dans les clauses SELECT et WHERE
 Manuel de Référence MySQL 4.1 : Version Française

Fonctions sur les bits
Fonctions de chiffrements
Fonctions d'informations
->Fonctions diverses

13.8.4 Fonctions diverses

    FORMAT(X,D)
    Formate l'argument X en un format comme '#,###,###.##' , arrondi à D décimales. Si D vaut 0 , le résultat n'aura ni séparateur décimal, ni partie décimale :
    
    mysql> SELECT FORMAT(12332.123456, 4);
            -> '12,332.1235'
    mysql> SELECT FORMAT(12332.1,4);
            -> '12,332.1000'
    mysql> SELECT FORMAT(12332.2,0);
            -> '12,332'
    GET_LOCK(str,timeout)
    Tente de poser un verrou nommé str , avec un délai d'expiration ( timeout ) exprimé en seconde. Retourne 1 si le verrou a été posé avec succès, 0 si il n'a pas pu être posé avant l'expiration du délai et NULL si une erreur est survenu (comme par exemple un manque de mémoire, ou la mort du thread lui-même, par mysqladmin kill ). Un verrou sera levé lorsque vous exécuterez la commande RELEASE_LOCK() , GET_LOCK() ou si le thread se termine. Cette fonction peut être utilisée pour implémenter des verrous applicatifs ou pour simuler des verrous de lignes. Les requêtes concurrentes des autres clients de même nom seront bloquées ; les clients qui s'entendent sur un nom de verrou peuvent les utiliser pour effectuer des verrouillages coopératifs :
    
    mysql> SELECT GET_LOCK("lock1",10);
            -> 1
    mysql> SELECT IS_FREE_LOCK("lock2");
            -> 1
    mysql> SELECT GET_LOCK("lock2",10);
            -> 1
    mysql> SELECT RELEASE_LOCK("lock2");
            -> 1
    mysql> SELECT RELEASE_LOCK("lock1");
            -> NULL
    Notez que le deuxième appel à RELEASE_LOCK() retourne NULL car le verrou "lock1" a été automatiquement libéré par le deuxième appel à GET_LOCK() .

    INET_ATON(expr)
    Retourne un entier qui représente l'expression numérique de l'adresse réseau. Les adresses peuvent être des entiers de 4 ou 8 octets.
    
    mysql> SELECT INET_ATON("209.207.224.40");
           ->  3520061480
    Le nombre généré est toujours dans l'ordre des octets réseau ; par exemple, le nombre précédent est calculé comme ceci : 209*256^3 + 207*256^2 + 224*256 +40 .Depuis MySQL 4.1.2, INET_ATON() comprend aussi les IP courtes :
    
    mysql> SELECT INET_ATON('127.0.0.1'), INET_ATON('127.1');
            -> 2130706433, 2130706433
    INET_ATON() a été ajouté en MySQL 3.23.15.
    INET_NTOA(expr)
    Retourne l'adresse réseau (4 ou 8 octets), de l'expression numérique exp :
    
    mysql> SELECT INET_NTOA(3520061480);
           ->  "209.207.224.40"
    IS_FREE_LOCK(str)
    Regarde si le verrou nommé str peut être librement utilisé (i.e., non verrouillé). Retourne 1 si le verrou est libre (personne ne l'utilise), 0 si le verrou est actuellement utilisé et NULL si une erreur survient (comme un argument incorrect).
    IS_USED_LOCK(str)
    Vérifie si le verrou appelé str est actuellement posé ou pas. Si c'est le cas, la fonction retourne l'identifiant de connexion qui a le verrou. Sinon, elle retourne NULL . IS_USED_LOCK() a été ajouté en MySQL version 4.1.0.

    MASTER_POS_WAIT(log_name, log_pos)
    Bloque le maître jusqu'à ce que l'esclave atteigne une position donnée dans le fichier d'historique principal, durant une réplication. Si l'historique principal n'est pas initialisé, retourne NULL . Si l'esclave n'est pas démarré, le maître restera bloqué jusqu'à ce que l'esclave soit démarré et ai atteint la position demandée. Si l'esclave a déjà dépassé cette position, la fonction se termine immédiatement. La valeur retournée est le nombre d'évènements qui a du être traité pour atteindre la position demandée, ou NULL en cas d'erreur. Cette fonction est très utile pour contrôler la synchronisation maître-esclave, mais elle a été initialement écrite pour faciliter les tests de réplications.

    RELEASE_LOCK(str)
    Libère le verrou nommé str , obtenu par la fonction GET_LOCK() . Retourne 1 si le verrou a bien été libéré, 0 si le verrou n'a pas été libéré par le thread (dans ce cas, le verrou reste posé) et NULL si le nom du verrou n'existe pas. Le verrou n'existe pas si il n'a pas été obtenu par la fonction GET_LOCK() ou si il a déjà été libéré.

    La commande DO est utilisable avec RELEASE_LOCK() . Syntaxe de DO .

    UUID()
    Retourne un Universal Unique Identifier (UUID) généré grâce à ``DCE 1.1: Remote Procedure Call'' (Appendix A) CAE (Common Applications Environment) Specifications , publié par le The Open Group en octobre 1997 (Document numéro C706 ).

    Un UUID est conçu comme un numéro qui est globalement unique dans l'espace, et le temps. Deux appels à UUID() sont supposés générer deux valeurs différentes, même si ces appels sont faits sur deux ordinateurs séparés, qui ne sont pas connectés ensembles.

    Un UUID est un nombre de 128 bits, représenté par une chaîne de 5 nombres hexadécimaux, au format aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee :
      Les trois premiers nombres sont générés à partir d'un timestamp.
      Le quatrième nombre préserver l'unicité temporelle si le timestamp perd sa monotonie (par exemple, à cause du changement d'heure d'hiver/été).
      Le cinquième nombre est un nombre IEEE 802 qui fournit l'unicité. Un nombre aléatoire est utilisé la si ce dernier n'est pas disponible (par exemple, comme l'hôte n'a pas de carte Ethernet, nous ne savons pas comment trouver une adresse matériel sur le système d'exploitation). Dans ce cas, l'unicité spatiale ne peut être garantie. Néanmoins, une collision aura une très faible propriété.Actuellement, l'adresse MAC est une interface utilisée sur FreeBSD et Linux. Sur les autres systèmes d'exploitation, MySQL génère un nombre aléatoire de 48 bits.
    
    mysql> SELECT UUID();
            -> '6ccd780c-baba-1026-9564-0040f4311e29'
    Notez que UUID() ne fonctionne pas encore avec la réplication.

    UUID() a été ajoutée en MySQL 4.1.2.

<< Fonctions diverses >>
Fonctions d'informations Autres fonctions Fonctions à utiliser dans les clauses SELECT et WHERE