Re: Restriccion CHECK

From: Juanky Moral <juanky(dot)moral(at)gmail(dot)com>
To: Juanky Moral <juanky(dot)moral(at)gmail(dot)com>, Roberto Andrade Fonseca <randrade(at)inteligentes(dot)com(dot)mx>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Restriccion CHECK
Date: 2005-09-06 18:14:29
Message-ID: 463a53a4050906111423a69@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Gracias Alvaro, ya lo entendí.
Un saludo

El 6/09/05, Alvaro Herrera<alvherre(at)alvh(dot)no-ip(dot)org> escribió:
> On Tue, Sep 06, 2005 at 07:15:42PM +0200, Juanky Moral wrote:
> > El 6/09/05, Alvaro Herrera<alvherre(at)alvh(dot)no-ip(dot)org> escribió:
> > > On Tue, Sep 06, 2005 at 06:25:55PM +0200, Juanky Moral wrote:
> > >
> > > > Y digo yo: ¿no funcionaría igual con AND y, tratandose de
> > > > comparaciones booleanas, más claro?:
> > > >
> > > > (rut IS NULL AND dv IS NULL)
> > >
> > > No, porque eso impide que definas cualquiera de los dos campos :-)
> > No entiendo lo que quieres decir. Explícate mejor.
> > Mira lo que yo trataba de decir:
> >
> > gnosis=# create table prueba (A boolean, B boolean);
> > CREATE TABLE
> > gnosis=# insert into prueba values (true,false);
> > INSERT 883872 1
> > gnosis=# alter table prueba add constraint prueba_chk check (a not is
> > null and b not is null);
> > gnosis=# alter table prueba add constraint prueba_chk check (a is not
> > null and b is not null);
> > ALTER TABLE
> > gnosis=# update prueba set a = null;
> > ERROR: new row for relation "prueba" violates check constraint "prueba_chk"
>
> alvherre=# update prueba set a = null, b = null;
> ERROR: el nuevo registro para la relación «prueba» viola la restricción check «prueba_chk»
>
>
> Este ultimo caso debe permitirse, y eso es lo que hace mi version:
>
> alvherre=# create table prueba2 (a boolean, b boolean);
> CREATE TABLE
> alvherre=# insert into prueba2 values (true, false);
> INSERT 0 1
> alvherre=# alter table prueba2 add constraint prueba2_chk check (a is not null = b is not null);
> ALTER TABLE
> alvherre=# update prueba2 set a = null;
> ERROR: el nuevo registro para la relación «prueba2» viola la restricción check «prueba2_chk»
> alvherre=# update prueba2 set a = null, b = null;
> UPDATE 1
>
>
> --
> Alvaro Herrera -- Valdivia, Chile Architect, www.EnterpriseDB.com
> "Lo esencial es invisible para los ojos" (A. de Saint Exúpery)
>

--
Juanky Moral
"Tendré que moverme más rápido: el horizonte brilla eléctrico."
(Horizonte Eléctrico - www.losdeltonos.com )

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Roberto Andrade Fonseca 2005-09-06 18:18:43 Re: Restriccion CHECK
Previous Message Alvaro Herrera 2005-09-06 18:07:43 Re: Resultado de un query contra resultado de una function