Re: [pgsql-es-ayuda] Como cambiar tipo de datos !!!

2014-11-12 Por tema Jaime Casanova
2014-11-11 15:29 GMT-05:00 Angelo Astorga :
> el tipo inicial se creo como:
> create type tipo_reserva as enum ('Pagina','Telefonica');
>
> y ahora necesito que también incluya al tipo_reserva la opción  'Smartphone'
>
> Ahora bien, cree un nuevo tipo con las 3 opciones, pero al modificar el
> campo con el nuevo tipo, me manda un error que no puede convertir un tipo en
> otro... alguna ayuda porfa.-
>

ah! eso es distinto. Algo que no estas diciendo aquí y que lo dijiste
en un mail privado que me enviaste (siempre responde con copia a la
lista) es que el campo esta asociado a vistas.

te es posible borrar las vistas? si es así, la solución no es muy compleja:

ALTER TABLE tabla ALTER modo_reserva
   SET DATA TYPE nuevo_tipo
   USING modo_reserva::text::nuevo_tipo;

-- 
Jaime Casanova www.2ndQuadrant.com
Professional PostgreSQL: Soporte 24x7 y capacitación
Phone: +593 4 5107566 Cell: +593 987171157

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] Como cambiar tipo de datos !!!

2014-11-11 Por tema Emanuel Calvo
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA512



El 11/11/14 a las 17:29, Angelo Astorga escibió:
> el tipo inicial se creo como: create type tipo_reserva as enum
> ('Pagina','Telefonica');
> 
> y ahora necesito que también incluya al tipo_reserva la opción
> 'Smartphone'
> 
> Ahora bien, cree un nuevo tipo con las 3 opciones, pero al
> modificar el campo con el nuevo tipo, me manda un error que no
> puede convertir un tipo en otro... alguna ayuda porfa.-
> 


En versiones más nuevas puedes:
postgres=# ALTER TYPE tipo_reserva ADD VALUE 'Smartphone' AFTER
'Telefonica';
ALTER TYPE


Si no te queda más remedio y no puede recrear el dato, puedes:

postgres=# select * from pg_enum ;
 enumtypid | enumsortorder | enumlabel
- ---+---+
 32769 | 1 | Pagina
 32769 | 2 | Telefonica
 32769 | 3 | Smartphone
(3 rows)

postgres=# INSERT INTO pg_enum VALUES (32769,4,'Cuak');
INSERT 32775 1


postgres=# select 'Cuak'::tipo_reserva;
 tipo_reserva
- --
 Cuak
(1 row)





- -- 
- --
Emanuel Calvo  http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
Bs. As., Argentina (GMT-3)
-BEGIN PGP SIGNATURE-
Version: GnuPG/MacGPG2 v2.0.18 (Darwin)
Comment: GPGTools - http://gpgtools.org

iQIcBAEBCgAGBQJUYo9uAAoJEIBeI/HMagHmWNUP/i4IVGvKqlHi+WFSKLlXzMxB
BvnJKaSmMWV99uPJFv2DoWW3gRMEYTkMeSVFgr7KeMSNjLopaOIN6sXjuTTtZGOm
dAkuTbbL4yPsjpihrwhBlA4RE8h5bPYQRbzhKrVdHBPDEuDWztJmqZRlJ03YxiCy
atiuaVyPWEJtKn0L1zik32oAUe6jn5YYCHnX6YNxsb51n60NiA2QdZgrT/7PmBbT
d6+fTVhF53TIZILeIkhBituI6M1eb+XOni7Qp1Tbu8GiGBnyg+lIGk44eHmP0IMN
gMCnvpLY1gZPrwcbMU/Kvr361MEkKa441K2/cqyNG2BrS/r8yWkoQdkDHha4zI9M
lKEL4Iq/meo8iXysmYDkO3VKst95fLLP2rMRxZ25yH45WFn+mljrD7IzcBc4YefI
fuxBrKtKYSx76rexVOrK4hP8vQ40n43GoViFH/mnyNBCL9aoh+VXQBFLqj+gUEJK
e0H+PfSckg6OTkSDfWbfCOLGFDNXcdwZ09HFQlmjpwhGzRDkTGhAQm0JpJ3S/XmA
5zOjk1R1GtGHr6DmBFIJkUyte8Z3ZId2K3a9R4gkNKFNVdb4Ly/CejHimZmbSqpE
klQ6VbzK3CUmYTlUm0eHiqFOiM7HL0PwD774nQ3JXU9vKfEeqVrjiZGmipVcKltK
jPSTsGli1QR6UZzonsCH
=fArv
-END PGP SIGNATURE-

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] Como cambiar tipo de datos !!!

2014-11-11 Por tema Ivan Perales M.
Algunas cosas simplemente no se pueden, pero hay workarounds que se pueden
aplicar. Lo malo en tu caso es que se llevarian muchos pasos para obtener
el resultado logrado.


 * Primero debes crear otro tipo con todos los valores requeridos y
obviamente otro nombre para el nuevo tipo.
 * En las tablas donde aplique, crear una columna con el nuevo tipo y
actualizar ese valor dependiendo el valor de la columna original.
 * Eliminas la columna original y renombras la nueva columna como la
original.

 Si quieres que el nuevo tipo se llame igual que el anterior, repites todo
el proceso.

Saludos

2014-11-11 14:29 GMT-06:00 Angelo Astorga :

> el tipo inicial se creo como:
> create type tipo_reserva as enum ('Pagina','Telefonica');
>
> y ahora necesito que también incluya al tipo_reserva la opción
>  'Smartphone'
>
> Ahora bien, cree un nuevo tipo con las 3 opciones, pero al modificar el
> campo con el nuevo tipo, me manda un error que no puede convertir un tipo
> en otro... alguna ayuda porfa.-
>
> saludos,
>
>
> El 11 de noviembre de 2014, 15:53, Jaime Casanova 
> escribió:
>
>> 2014-11-11 11:49 GMT-05:00 Angelo Astorga :
>> > Hola Lista,
>> > Tengo postgresql ver 8.4.7 con una tabla que posee un campo tipo
>> definido ya
>> > existente y necesito modificarlo, es decir, agregando 2 tipos
>> adicionales
>> > que soporte... alguna ayuda al respecto?
>> >
>> > Ejemplo:
>> > modo_reserva tipo_reserva not null default 'Pagina'::tipo_reserva,
>> >
>>
>> y que error te da? quizá lo que necesitas es agregar la clausula
>> USING. Además si tienes un valor default yo lo haría en dos partes.
>>
>> ALTER TABLE tabla ALTER modo_reserva DROP DEFAULT,
>>ALTER modo_reserva SET DATA TYPE
>> tipo_reserva
>>  USING modo_reserva::tipo_reserva,
>>ALTER  modo_reserva SET DEFAULT
>> 'Pagina'::tipo_reserva;
>>
>> > Necesito que además soporte los tipos 'Telefonica' y "Smartphone'...
>> estoy
>> > probando con alter type... y no logro modificar dicho campo
>> >
>>
>> ?
>>
>>
>> --
>> Jaime Casanova www.2ndQuadrant.com
>> Professional PostgreSQL: Soporte 24x7 y capacitación
>> Phone: +593 4 5107566 Cell: +593 987171157
>>
>
>


-- 
Lindolfo Iván Perales Mancinas
Solo existen 10 tipos de personas en el mundo, las que saben binario y las
que no.


Re: [pgsql-es-ayuda] Como cambiar tipo de datos !!!

2014-11-11 Por tema Angelo Astorga
el tipo inicial se creo como:
create type tipo_reserva as enum ('Pagina','Telefonica');

y ahora necesito que también incluya al tipo_reserva la opción  'Smartphone'

Ahora bien, cree un nuevo tipo con las 3 opciones, pero al modificar el
campo con el nuevo tipo, me manda un error que no puede convertir un tipo
en otro... alguna ayuda porfa.-

saludos,


El 11 de noviembre de 2014, 15:53, Jaime Casanova 
escribió:

> 2014-11-11 11:49 GMT-05:00 Angelo Astorga :
> > Hola Lista,
> > Tengo postgresql ver 8.4.7 con una tabla que posee un campo tipo
> definido ya
> > existente y necesito modificarlo, es decir, agregando 2 tipos adicionales
> > que soporte... alguna ayuda al respecto?
> >
> > Ejemplo:
> > modo_reserva tipo_reserva not null default 'Pagina'::tipo_reserva,
> >
>
> y que error te da? quizá lo que necesitas es agregar la clausula
> USING. Además si tienes un valor default yo lo haría en dos partes.
>
> ALTER TABLE tabla ALTER modo_reserva DROP DEFAULT,
>ALTER modo_reserva SET DATA TYPE
> tipo_reserva
>  USING modo_reserva::tipo_reserva,
>ALTER  modo_reserva SET DEFAULT
> 'Pagina'::tipo_reserva;
>
> > Necesito que además soporte los tipos 'Telefonica' y "Smartphone'...
> estoy
> > probando con alter type... y no logro modificar dicho campo
> >
>
> ?
>
>
> --
> Jaime Casanova www.2ndQuadrant.com
> Professional PostgreSQL: Soporte 24x7 y capacitación
> Phone: +593 4 5107566 Cell: +593 987171157
>


Re: [pgsql-es-ayuda] Como cambiar tipo de datos !!!

2014-11-11 Por tema Jaime Casanova
2014-11-11 11:49 GMT-05:00 Angelo Astorga :
> Hola Lista,
> Tengo postgresql ver 8.4.7 con una tabla que posee un campo tipo definido ya
> existente y necesito modificarlo, es decir, agregando 2 tipos adicionales
> que soporte... alguna ayuda al respecto?
>
> Ejemplo:
> modo_reserva tipo_reserva not null default 'Pagina'::tipo_reserva,
>

y que error te da? quizá lo que necesitas es agregar la clausula
USING. Además si tienes un valor default yo lo haría en dos partes.

ALTER TABLE tabla ALTER modo_reserva DROP DEFAULT,
   ALTER modo_reserva SET DATA TYPE tipo_reserva
 USING modo_reserva::tipo_reserva,
   ALTER  modo_reserva SET DEFAULT
'Pagina'::tipo_reserva;

> Necesito que además soporte los tipos 'Telefonica' y "Smartphone'... estoy
> probando con alter type... y no logro modificar dicho campo
>

?


-- 
Jaime Casanova www.2ndQuadrant.com
Professional PostgreSQL: Soporte 24x7 y capacitación
Phone: +593 4 5107566 Cell: +593 987171157

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


[pgsql-es-ayuda] Como cambiar tipo de datos !!!

2014-11-11 Por tema Angelo Astorga
Hola Lista,
Tengo postgresql ver 8.4.7 con una tabla que posee un campo tipo definido
ya existente y necesito modificarlo, es decir, agregando 2 tipos
adicionales que soporte... alguna ayuda al respecto?

Ejemplo:
modo_reserva tipo_reserva not null default 'Pagina'::tipo_reserva,

Necesito que además soporte los tipos 'Telefonica' y "Smartphone'... estoy
probando con alter type... y no logro modificar dicho campo

Saludos y gracias,