Este sitio usa cookies, propias y de terceros.
Si se continúa con nosotros entendemos que se acepta el uso de cookies.

Como crear un triggers pero que genere solo Numeros

Tema en 'Instalación, configuración y personalización' iniciado por Josraso, 7 Dic 2014.

  1. Josraso

    Josraso Lo cortes no quita lo valiente. Miembro del equipo

    508
    24
    18
    Mi consulta es la siguiente tengo estos dos triggers para generar referencias unicas automaticamente, pero tal como estan me generan letras tambien y solo quiero numeros.





    Insertar CODE, HTML o PHP:
    CREATE TRIGGER combinacion_referencia BEFORE INSERT ON ps_product_attribute FOR EACH ROW SET NEW.reference = concat('presta-',(concat (NEW.id_product,'-','CO','-')),conv(UUID(),20,26));
    
    
    CREATE TRIGGER producto_referencia BEFORE INSERT ON ps_product FOR EACH ROW SET NEW.reference = concat('presta-PO-',conv(UUID(),20,26));

    Tal como esta ahora me genera para los productos la referencia asi presta-PO-1FIND31G y yo la quiero asi P-525455 y en las combinaciones genera esto presta-12-CO-1H5OK8L6 y lo que necesito es que lo genere asi CO-148878.


    Lo mismo quiero hacer con este otro codigo que es solo para actualizar todas las referencias


    Insertar CODE, HTML o PHP:
    update ps_product set reference = (SELECT concat('presta-',conv(UUID(),20,26))) where reference is NULL or reference ='';
    
    
    update ps_product_attribute set reference = (SELECT concat('presta-',conv(UUID(),20,26))) where reference is NULL or reference ='';
    Alguien sabe como cambiar el codigo.
     
  2. alberto.alvarez

    alberto.alvarez Loading message ...

    10
    0
    0
    Hola Josraso, puedes probar con estas, recuerda hacer una copia de seguridad que nunca está demás al hacer cambios masivos:

    CREATE TRIGGER combinacion_referencia BEFORE INSERT ON ps_product_attribute FOR EACH ROW SET NEW.reference = concat('CO-', conv(UUID(),20,10));

    CREATE TRIGGER producto_referencia BEFORE INSERT ON ps_product FOR EACH ROW SET NEW.reference = concat('P-', conv(UUID(),20,10));


    update ps_product set reference = concat('P-', conv(UUID(),20,10)) where reference is NULL or reference ='';

    update ps_product_attribute set reference = concat('CO-', conv(UUID(),20,10)) where reference is NULL or reference ='';
     
  3. Josraso

    Josraso Lo cortes no quita lo valiente. Miembro del equipo

    508
    24
    18
    Gracias, funciono perfecto aunque me gustaria poder poner menos numeros, asi me sale P16353329026, Son 11 numeros y con menos me seria suficiente, Seis seria lo ideal.
     
  4. alberto.alvarez

    alberto.alvarez Loading message ...

    10
    0
    0
    Puedes cambiarlo así:

    concat('P-', SUBSTRING(conv(UUID(),20,10), 6))

    Pero te arriesgas a que se repita.
     

Compartir esta página