Jaime Casanova escribió:
2009/3/20 Terry Yapt <[email protected]>:
Alvaro Herrera escribió:
Terry Yapt escribió:
Ok, tenemos la función UPPER, muy apropiada, puedo hacerlo con
TRIGGERS..... perooooo necesito crear al menos un trigger para cada nombre
de columna distinto y luego asignarlo a cada tabla.
Podrías hacer el trigger con plperl, y pasarle el nombre de columna como
argumento (durante CREATE TRIGGER).
Lo siento.... no conozco Perl y, lo que conozco, no me gusta demasiado.
Manias, supongo...... :-)
Pl/PgSQL sería una opción ?
con plpgsql tendrias que crear al menos un trigger por tabla, y en ese
solo trigger cambiar a mayusculas todas las columnas que necesites en
esa tabla
Hasta ahora, he creado una function trigger, tal que así:
DECLARE
BEGIN
NEW.nombre := sctest.f_mayusculas(NEW.nombre);
RETURN NEW;
END;
Llama a una función porque, posiblemente, quiero hacer más cosas dentro
de dicha función (seguramente quitar los acentos también). Esta es la
función:
DECLARE
cadena_out varchar := $1;
BEGIN
cadena_out := UPPER($1);
END;
Luego he asignado la function-trigger a varias tablas. Me disponia a
probar si funciona...
El problema vendrá cuando la columna a modificar, NO se llame 'nombre',
sino de otro modo...
--
TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te lo
agradecerán