From: | Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl> |
---|---|
To: | mmiranda(at)americatel(dot)com(dot)sv |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: rutina para genear pines |
Date: | 2005-05-10 02:05:57 |
Message-ID: | 20050510020557.GB21188@dcc.uchile.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
No te creo que usara toda la CPU; aca se demora 0% de CPU en decir que
la funcion no es valida.
create unique index pin_pines on pines (pin);
create or replace function crea_10_pines(int) returns void language plpgsql
volatile as $$
declare
total int := 0;
posibles text := '1234567890';
nuevo_pin text;
offset int;
y int;
largo alias for $1;
begin
LOOP
nuevo_pin := '';
FOR y IN 1 .. largo LOOP
offset := ceil(random()*length(posibles));
nuevo_pin := nuevo_pin || substr(posibles, offset, 1);
END LOOP;
BEGIN
INSERT INTO pines (pin) VALUES (nuevo_pin);
total := total + 1;
EXCEPTION WHEN others THEN
raise notice 'duplicado %', nuevo_pin;
END;
IF (total >= 10) THEN
RETURN;
END IF;
END LOOP;
end;
$$;
--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"No renuncies a nada. No te aferres a nada."
From | Date | Subject | |
---|---|---|---|
Next Message | Jaime Casanova | 2005-05-10 04:05:45 | Re: Ejemplo de funcion, o vista? |
Previous Message | Alvaro Herrera | 2005-05-10 01:20:51 | Re: Programar un borrado de datos |