Discussion:
Valores por defecto en un campo.
Pablo Braulio
2005-10-08 22:12:26 UTC
Permalink
Hola.

¿Alguien sabría decirme como puedo crear una tabla y que en un campo aparezca
un valor por defecto?.

Intento usar un campo de la tabla que sea "si no". Lo único que se me había
ocurrido era usar un tipo de dato para el campo "char(2)", pero no se como
poner por defecto que muestre "si". A no ser que no sea el modo mas adecuado.
--
Saludos.
Pablo

Fingerprint 5607 40CF 45EF D490 B794  5056 D7B2 C3DC ABF1 CE49
Jabber: bruli-Josq/***@public.gmane.org
http://aldiagestion.com/blog
Alvaro Herrera
2005-10-09 00:18:56 UTC
Permalink
Post by Pablo Braulio
¿Alguien sabría decirme como puedo crear una tabla y que en un campo aparezca
un valor por defecto?.
La clausula DEFAULT.
Post by Pablo Braulio
Intento usar un campo de la tabla que sea "si no". Lo único que se me había
ocurrido era usar un tipo de dato para el campo "char(2)", pero no se como
poner por defecto que muestre "si". A no ser que no sea el modo mas adecuado.
Hum, has pensado usar el tipo "boolean" ?
--
Alvaro Herrera http://www.amazon.com/gp/registry/DXLWNGRJD34
"Un poeta es un mundo encerrado en un hombre" (Victor Hugo)
Pablo Braulio
2005-10-09 10:59:35 UTC
Permalink
Post by Alvaro Herrera
Hum, has pensado usar el tipo "boolean" ?
Pues ahora que me lo has dicho lo he probado. Podría servir pero esto lo que
devuelve es true o false.

Lo he solucionado (de momento): columna boolean not null default 't'.
--
Saludos.
Pablo

Fingerprint 5607 40CF 45EF D490 B794  5056 D7B2 C3DC ABF1 CE49
Jabber: bruli-Josq/***@public.gmane.org
http://aldiagestion.com/blog
Martín Marqués
2005-10-09 12:18:33 UTC
Permalink
Post by Pablo Braulio
Hola.
¿Alguien sabría decirme como puedo crear una tabla y que en un campo aparezca
un valor por defecto?.
Intento usar un campo de la tabla que sea "si no". Lo único que se me había
ocurrido era usar un tipo de dato para el campo "char(2)", pero no se como
poner por defecto que muestre "si". A no ser que no sea el modo mas adecuado.
Mala idea. Eso es muy de MySQL. En motores avanzados com PostgreSQL tenes el
tipo de dato booleano (verdadero o falso):

CREATE TABLE prueba_bool (
id SERIAL PRIMARY KEY,
activo BOOLEAN DEFAULT true
);

Ahi tenes un ejemplo de una tabla con campo booleano, con valor por defecto
true (o verdadero).
--
select 'mmarques' || '@' || 'unl.edu.ar' AS email;
---------------------------------------------------------
Martín Marqués | Programador, DBA
Centro de Telemática | Administrador
Universidad Nacional
del Litoral
---------------------------------------------------------
Mario Soto Cordones - Venezuela
2005-10-09 17:14:54 UTC
Permalink
Post by Pablo Braulio
Post by Pablo Braulio
Hola.
¿Alguien sabría decirme como puedo crear una tabla y que en un campo
aparezca
Post by Pablo Braulio
un valor por defecto?.
Intento usar un campo de la tabla que sea "si no". Lo único que se me había
ocurrido era usar un tipo de dato para el campo "char(2)", pero no se como
poner por defecto que muestre "si". A no ser que no sea el modo mas
adecuado.
Mala idea. Eso es muy de MySQL. En motores avanzados com PostgreSQL tenes el
CREATE TABLE prueba_bool (
id SERIAL PRIMARY KEY,
activo BOOLEAN DEFAULT true
);
Ahi tenes un ejemplo de una tabla con campo booleano, con valor por defecto
true (o verdadero).
Esto es correcto, entonces si quieres evaluar si o no, simplemente
evalua true or false
Post by Pablo Braulio
--
---------------------------------------------------------
Martín Marqués | Programador, DBA
Centro de Telemática | Administrador
Universidad Nacional
del Litoral
---------------------------------------------------------
---------------------------(fin del mensaje)---------------------------
TIP 2: puedes desuscribirte de todas las listas simultáneamente
--
cordialmente,

Ing. Mario Soto Cordones
Mario Soto Cordones - Venezuela
2005-10-09 19:00:19 UTC
Permalink
Hola Roberto,

Esa es una buena manera de avaluar.

Saludos
Post by Mario Soto Cordones - Venezuela
Post by Pablo Braulio
Post by Pablo Braulio
¿Alguien sabría decirme como puedo crear una tabla y que en un campo
aparezca
Post by Pablo Braulio
un valor por defecto?.
Intento usar un campo de la tabla que sea "si no". Lo único que se me
Esto es correcto, entonces si quieres evaluar si o no, simplemente
evalua true or false
SELECT case when inventariable=TRUE then 'Sí' else 'No' end as inventariable
from articulos;
inventariable
---------------

No


No
...
Saludos,
--
Roberto Andrade Fonseca
Inteligentes.com, S.A. de C.V.
Tel. 5207-1672/73
--
cordialmente,

Ing. Mario Soto Cordones
Roberto Andrade Fonseca
2005-10-09 18:00:24 UTC
Permalink
Post by Mario Soto Cordones - Venezuela
Post by Pablo Braulio
Post by Pablo Braulio
¿Alguien sabría decirme como puedo crear una tabla y que en un campo
aparezca
Post by Pablo Braulio
un valor por defecto?.
Intento usar un campo de la tabla que sea "si no". Lo único que se me
Esto es correcto, entonces si quieres evaluar si o no, simplemente
evalua true or false
Algo así:

SELECT case when inventariable=TRUE then 'Sí' else 'No' end as inventariable
from articulos;
inventariable
---------------

No


No
...

Saludos,
--
Roberto Andrade Fonseca
Inteligentes.com, S.A. de C.V.
Tel. 5207-1672/73
Martín Marqués
2005-10-09 21:33:22 UTC
Permalink
SELECT case when inventariable=TRUE then 'Sí' else 'No' end as inventariable
^^^^^^^^^^^^^^^^^^
No en necesario el "=TRUE", ya que lo que pide en CASE es un condicional, que
es justamente lo que esta guardado en la columna.
--
select 'mmarques' || '@' || 'unl.edu.ar' AS email;
---------------------------------------------------------
Martín Marqués | Programador, DBA
Centro de Telemática | Administrador
Universidad Nacional
del Litoral
---------------------------------------------------------
Martín Marqués
2005-10-09 21:27:49 UTC
Permalink
Post by Mario Soto Cordones - Venezuela
Post by Martín Marqués
Mala idea. Eso es muy de MySQL. En motores avanzados com PostgreSQL tenes el
CREATE TABLE prueba_bool (
id SERIAL PRIMARY KEY,
activo BOOLEAN DEFAULT true
);
Ahi tenes un ejemplo de una tabla con campo booleano, con valor por defecto
true (o verdadero).
Esto es correcto, entonces si quieres evaluar si o no, simplemente
evalua true or false
Y si queres que te devuelva si o no, usas CASE. :-D

SELECT CASE WHEN activo THEN 'si' ELSE 'no' END
FROM prueba_bool;
--
select 'mmarques' || '@' || 'unl.edu.ar' AS email;
---------------------------------------------------------
Martín Marqués | Programador, DBA
Centro de Telemática | Administrador
Universidad Nacional
del Litoral
---------------------------------------------------------
Pablo Braulio
2005-10-10 18:47:15 UTC
Permalink
Y si queres que te devuelva si o no, usas CASE. :-D

SELECT CASE WHEN activo THEN 'si' ELSE 'no' END
FROM prueba_bool;

¡¡Estupendo!!. Esto me sirve.
Muchas gracias.
--
Saludos.
Pablo.

Jabber: bruli-Josq/MtxpoBWk0Htik3J/***@public.gmane.org
Continúe leyendo en narkive:
Loading...