From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Victor Lopez <v(dot)lopez(dot)s(at)ono(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: (CREATE TEMP | 'DROP') TABLE en una (funcion | transaccion) ¿? |
Date: | 2007-03-25 18:10:31 |
Message-ID: | 20070325181031.GB4645@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Victor Lopez escribió:
> test=# CREATE OR REPLACE FUNCTION usuarioOK(VARCHAR(16)) RETURNS boolean AS
> test-# $$
> test$# BEGIN
> test$# BEGIN
> test$# CREATE TEMP TABLE TabUsuario (usuario domUsuario) ON COMMIT DROP;
> test$# INSERT INTO TabUsuario(usuario) VALUES ($1);
> test$# RETURN true;
> test$# EXCEPTION
> test$# WHEN check_violation THEN
> test$# RETURN false;
> test$# END;
> test$# END;
> test$# $$
> test-# LANGUAGE plpgsql
> test-# SECURITY DEFINER;
> CREATE FUNCTION
> test=# SELECT usuarioOK('gtfrthjuk');
> usuariook
> -----------
> t
> (1 fila)
Esto es mucho mas facil de hacer; no necesitas una funcion:
alvherre=# select 'gtfrthjuk'::domUsuario;
domusuario
------------
gtfrthjuk
(1 fila)
alvherre=# select 'gtfrth juk'::domUsuario;
ERROR: el valor para el dominio domusuario viola la restricción check «usuariochk»
--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.
From | Date | Subject | |
---|---|---|---|
Next Message | Victor Lopez | 2007-03-25 18:22:03 | Re: (CREATE TEMP | 'DROP') TABLE en una (funcion | transaccion) ¿? |
Previous Message | Alvaro Herrera | 2007-03-25 18:09:05 | Re: (CREATE TEMP | 'DROP') TABLE en una (funcion | transaccion) ¿? |