Re: (CREATE TEMP | 'DROP') TABLE en una (funcion | transaccion) ¿?

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.

In response to

Responses

Browse pgsql-es-ayuda by date

  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) ¿?