Comment récupérer des microsecondes ou des millisecondes à partir de l'heure actuelle de MySQL?

Je suis en train de créer ma première fonction stockée sur MySQL. Dans cette fonction, je veux retourner le timestamp de la date et l'heure actuelles avec 3 microseconde chiffres comme ceci: YYYYMMDDHHMMSSZZZ

Je utiliser ce numéro dans ma base de données pour créer des clés uniques pour mes dossiers en mode hors connexion, afin qu'ils ne tombent pas en panne lors de mes systèmes de fusionner les bases de données à partir de différents serveurs en mode hors connexion.

Donc mon premier essai a été SELECT CAST(MICROSECOND(NOW()) AS CHAR(3));

Mais elle renvoie 0.

Si j'essaie SELECT CAST(MICROSECOND('2009-12-31 23:59:59.001210') AS CHAR(3));

Il retourne 121, que j'en ai besoin.

Donc, Comment dire à MySQL que je veux savoir le nombre de microsecondes de l'heure actuelle?


EDIT:

Considérez ceci:

CREATE FUNCTION CHAVE (pTable VARCHAR(32)) RETURNS CHAR(20)
BEGIN
    DECLARE vSigla CHAR(3);
    DECLARE vDateTime CHAR(14);
    DECLARE vMilli CHAR(3);
    DECLARE vKey CHAR(20);
    SET vSigla = (SELECT SIGLA FROM TABLELIST WHERE NOME = pTable);
    SET vDateTime = (SELECT CAST(LEFT(UTC_TIMESTAMP()+0, 14) AS CHAR(14)));
    SET vMilli = LPAD(FLOOR(RAND() * 1000), 3, '0');
    SET vKey = CONCAT(vSigla, vDateTime, vMilli);
    RETURN vKey;
END;

Le résultat de:

INSERT INTO TABLEX (dateID, name) VALUES (CHAVE('TABLEX'), 'EASI');

Sera, à partir de CHAVE('TABLEX'):

KEY20130320151159666

Où 666 est un numéro aléatoire, mais je voudrais qu'il était le véritable millisecondes compter de la date couranteje n'ai donc pas possible de clés dupliquées.


Si seulement je pouvais utiliser SHOW COLUMNS FROM @TableName WHERE FIELD_NAME LIKE '%_ID' LIMIT 1 et insérer que dans un non-dynamique SÉLECTIONNEZ cette option pour obtenir l'ordre de la milliseconde du dernier enregistrement de la table...

source d'informationauteur PSyLoCKe