DUDAS de disparadores con Postgre
2 participantes
Página 1 de 1.
DUDAS de disparadores con Postgre
Wenas.
Estoy con la base de datos del proyecto, pero veo que un montón de comprobaciones que las hago bajo php no debería hacerlas, es la propia base de datos la que debería, ya que si luego la misma base de datos la uso para otro lenguaje u otro proyecto, no tendría que repetir código.
Una cosa sencilla sería hacer un disparador para que en vez de salirme un mensaje de error de base de datos que nos sirve a los programadores, salga uno que sea personalizado para un usuario.
Por ejemplo, que el usuario gilipoyas que quiere poner en la casilla del codigo postal el dato "ppgpgpp" ea, error al canto. Pues que la BBSS sea la que me envie un erro diciendo: el código postal ha de ser un valor numérico.
¿alguien ha hecho ya disparadores de ese tipo?, yo tengo algunos sobre comprobar que ya existe el que va a insertar, pero de comprobación de tipos estoy más perdido....
PD: se debería dar en la carrera técnica.
Estoy con la base de datos del proyecto, pero veo que un montón de comprobaciones que las hago bajo php no debería hacerlas, es la propia base de datos la que debería, ya que si luego la misma base de datos la uso para otro lenguaje u otro proyecto, no tendría que repetir código.
Una cosa sencilla sería hacer un disparador para que en vez de salirme un mensaje de error de base de datos que nos sirve a los programadores, salga uno que sea personalizado para un usuario.
Por ejemplo, que el usuario gilipoyas que quiere poner en la casilla del codigo postal el dato "ppgpgpp" ea, error al canto. Pues que la BBSS sea la que me envie un erro diciendo: el código postal ha de ser un valor numérico.
¿alguien ha hecho ya disparadores de ese tipo?, yo tengo algunos sobre comprobar que ya existe el que va a insertar, pero de comprobación de tipos estoy más perdido....
PD: se debería dar en la carrera técnica.
guybrush78- Cantidad de envíos : 64
Edad : 45
Fecha de inscripción : 02/04/2008
Re: DUDAS de disparadores con Postgre
Nuestro amigo Cea, que aún no ha entrado en el foro... ejem, ejem... me ha dado la solución, se usa para ello expresiones regulares como esta:
CREATE FUNCTION isnumeric(text) RETURNS boolean AS '
SELECT $1 ~ ''^[0-9]+$''
' LANGUAGE 'sql';
en text meto ahora la columna del NEW que yo quiera y veo si es correcto o no.
CREATE FUNCTION isnumeric(text) RETURNS boolean AS '
SELECT $1 ~ ''^[0-9]+$''
' LANGUAGE 'sql';
en text meto ahora la columna del NEW que yo quiera y veo si es correcto o no.
guybrush78- Cantidad de envíos : 64
Edad : 45
Fecha de inscripción : 02/04/2008
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|